@River0051

Как можно указать версию контента в redis чтобы потом сравнить ее с новым числом?

Добрый день, помогите разобраться, нужно реализовать удаления старых ключей из 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, и если значение больше, то обновлять, но это строка и как сравнить только последние цифры я не пойму

Возможно есть какой-то способ лучше, помогите решить проблему
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы