Добрый день, помогите разобраться, нужно реализовать удаления старых ключей из redis если версия обновилась, есть такой скрипт который кэширует нужный кусок на странице
Нужно разделить кэш для админа и всех остальных, чтобы кэши были разные, т.к у админа доп информация выводится в этом блоке
if ($current_user->user_login == 'admin'){
$key = $pname.'_first_admin_'.get_field('admin_version');
if ($redis->exists($key)) {
echo $redis->get($key);
} else {
$content20 = get20($bild_20,$pname);
// вычисляете свой кусок, затем
$redis->set($key, $content20);
//$redis->expire($key, 2592000); // 1 месяц
echo $redis->get($key);
}
}
else
{
$key = $pname.'_first_user_'.get_field('user_version');
if ($redis->exists($key)) {
echo $redis->get($key);
} else {
$content20 = get20($bild_20,$pname);
// вычисляете свой кусок, затем
$redis->set($key, $content20);
//$redis->expire($key, 2592000); // 1 месяц
echo $redis->get($key);
}
}
в redis ключи записаны
test_first_admin_1
test_first_user_1
Весь код работает отлично, но при повышении версии в get_field('admin_version'), мы запишем новый ключ, а старый нужно как-то удалить, но как я не могу придумать
я думал делать запрос $redis->get('test_first_admin_*') и если там что-то есть удалять, но сразу пришла мысль что это не правильно, ибо мы каждый раз будем перезаписывать, а нужно получить и сравнить например запись test_first_admin_1 с новой test_first_admin_2, и если значение больше, то обновлять, но это строка и как сравнить только последние цифры я не пойму
Возможно есть какой-то способ лучше, помогите решить проблему