欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > PHP操作redis删除指定前缀的key值

PHP操作redis删除指定前缀的key值

2025/2/5 12:11:34 来源:https://blog.csdn.net/Clarkbrave/article/details/144149317  浏览:    关键词:PHP操作redis删除指定前缀的key值

文章目录

    • 使用场景
    • 在redis数据库用命令行删除指定前缀缓存
    • PHP操作redis删除指定前缀的key值

使用场景

在项目中,用redis做缓存。不同场景下用不同的缓存名称,同一个场景下,会用相同的前缀来缓存数据,比如产品数据缓存,goods_1,goods_2,goods_3等,会用名称加上id的形式来缓存。如果,我需要删除所有的产品缓存,又不想删除其他缓存,就会用到redis删除指定前缀的缓存。

在redis数据库用命令行删除指定前缀缓存

这是命令行里写法

redis-cli --scan --pattern "goods_*" | xargs -L 2000 redis-cli del

其中xargs -L指令表示xargs一次读取的行数,也就是每次删除的key数量,一次读取太多xargs会报错

PHP操作redis删除指定前缀的key值

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('yourpwd');
$iterator = null; // 初始迭代器设置为null
$pattern = 'goods_*'; // 指定匹配模式
$count = 100; // 每次迭代返回的键的最大数量
// 使用SCAN命令迭代匹配的键
while ($keys = $redis->scan($iterator, $pattern, $count)) {foreach ($keys as $key) {$redis->del($key); // 删除匹配到的键}
}

注释写的比较明白,不单独解释了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com