Red*_*ant 5 php redis phpredis
通过使用phpredis,我在分页中保存了一些数据,如下所示:
review/itemA/1
review/itemA/2
Run Code Online (Sandbox Code Playgroud)
其中1
和2
是页码。我在文档中读到您可以使用通配符来检索多个键。
$allKeys = $redis->keys('*'); // all keys will match this.
$keyWithUserPrefix = $redis->keys('user*');
Run Code Online (Sandbox Code Playgroud)
但是,当有人发布新评论时,我是否也可以使用通配符删除所有旧密钥?我可以做这样的事情:
$redis->delete('review/itemA/*'); // or $redis->delete('review/itemA*')
Run Code Online (Sandbox Code Playgroud)
然而它并没有奏效。
使用时phpredis
,您可以获取前缀(phpredis 自动在各处添加前缀)并以这种方式删除键模式:
<?php
...
$prefix = $redisClient->getOption(Redis::OPT_PREFIX);
$redisClient->delete(array_map(
function ($key) use ($prefix) {
return str_replace($prefix, '', $key);
}, $redisClient->keys('*'))
);
Run Code Online (Sandbox Code Playgroud)
否 - Redis 的DEL
lete 不接受通配符,您必须明确命名键。请参阅此处了解可能的方向:/sf/answers/1637938781/
归档时间: |
|
查看次数: |
23487 次 |
最近记录: |