REDIS СУЩЕСТВУЕТ с переполнением стека

У меня есть несколько ключей, которые имеют одно и то же имя, за исключением одного слова (user.delete.id, user.add.id, user.update.id… так далее). Я хочу удалить определенный ключ, если какой-либо из этих ключей существует. Поэтому мне было интересно, возможно ли сделать что-то вроде следующего PHP:

В классе пользователя

$cachekey = 'user.'

В другом классе

$redis->exists(User::$cachekey.'*.'.$id)

будет работать символ звездочки?

0

Решение

Как сказал @Vigikaran, ваше решение не может быть применено к таким командам, как EXISTS.

Обновление: улучшенное решение

Идиоматическим решением вашей проблемы будет использование хеша для хранения значений.

Когда вы устанавливаете значение для user.add.id:

HSET user.id add somevalue

Я использовал необработанные команды Redis, но они должны переводиться буквально в PHP (точный синтаксис может варьироваться в зависимости от используемого вами драйвера).

Обратите внимание, что я изменил имя ключа: это user.id в моем примере. переменная часть ваших ключей («добавить», «удалить» …) становится именем поля в моем решении.

Если вы хотите удалить ключ, используйте HDEL

HDEL user.id add

Затем, чтобы проверить наличие хотя бы одного ключа, просто используйте EXISTS:

EXISTS user.id
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector