У меня есть несколько ключей, которые имеют одно и то же имя, за исключением одного слова (user.delete.id
, user.add.id
, user.update.id
… так далее). Я хочу удалить определенный ключ, если какой-либо из этих ключей существует. Поэтому мне было интересно, возможно ли сделать что-то вроде следующего PHP:
В классе пользователя
$cachekey = 'user.'
В другом классе
$redis->exists(User::$cachekey.'*.'.$id)
будет работать символ звездочки?
Как сказал @Vigikaran, ваше решение не может быть применено к таким командам, как EXISTS.
Обновление: улучшенное решение
Идиоматическим решением вашей проблемы будет использование хеша для хранения значений.
Когда вы устанавливаете значение для user.add.id:
HSET user.id add somevalue
Я использовал необработанные команды Redis, но они должны переводиться буквально в PHP (точный синтаксис может варьироваться в зависимости от используемого вами драйвера).
Обратите внимание, что я изменил имя ключа: это user.id в моем примере. переменная часть ваших ключей («добавить», «удалить» …) становится именем поля в моем решении.
Если вы хотите удалить ключ, используйте HDEL
HDEL user.id add
Затем, чтобы проверить наличие хотя бы одного ключа, просто используйте EXISTS:
EXISTS user.id
Других решений пока нет …