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); // 删除匹配到的键
    }
}

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

上一篇:BUUCTF—Reverse—Java逆向解密(10)


下一篇:提升异步编程性能:使用 uvloop 加速你的 Python 应用-引言