REDIS 存在 PHP
REDIS EXISTS with PHP
我有多个名称相同的键,除了一个单词 (user.delete.id
、user.add.id
、user.update.id
... 等)。如果这些键中的任何一个存在,我想删除某个键。所以我想知道是否可以做类似下面的事情 PHP:
在用户中 class
$cachekey = 'user.'
另一个class
$redis->exists(User::$cachekey.'*.'.$id)
使用星号有用吗?
正如@Vigikaran 所说,您的解决方案不能应用于 EXISTS 等命令。
更新:改进的解决方案
您的问题的惯用解决方案是使用散列来存储值。
当您为 user.add.id 设置值时:
HSET user.id add somevalue
我使用了原始 Redis 命令,但它应该按字面意思翻译 PHP(具体语法可能因您使用的驱动程序而异)。
请注意,我更改了密钥的名称:在我的示例中为 user.id。您的键的可变部分('add'、'delete'...)在我的解决方案中成为字段名称。
如果要删除密钥,请使用 HDEL
HDEL user.id add
然后要测试至少一个键是否存在,只需使用 EXISTS:
EXISTS user.id
我有多个名称相同的键,除了一个单词 (user.delete.id
、user.add.id
、user.update.id
... 等)。如果这些键中的任何一个存在,我想删除某个键。所以我想知道是否可以做类似下面的事情 PHP:
在用户中 class
$cachekey = 'user.'
另一个class
$redis->exists(User::$cachekey.'*.'.$id)
使用星号有用吗?
正如@Vigikaran 所说,您的解决方案不能应用于 EXISTS 等命令。
更新:改进的解决方案
您的问题的惯用解决方案是使用散列来存储值。
当您为 user.add.id 设置值时:
HSET user.id add somevalue
我使用了原始 Redis 命令,但它应该按字面意思翻译 PHP(具体语法可能因您使用的驱动程序而异)。
请注意,我更改了密钥的名称:在我的示例中为 user.id。您的键的可变部分('add'、'delete'...)在我的解决方案中成为字段名称。
如果要删除密钥,请使用 HDEL
HDEL user.id add
然后要测试至少一个键是否存在,只需使用 EXISTS:
EXISTS user.id