本文摘自PHP中文网,作者藏色散人,侵删。
php redis删除key的方法:首先使用scan命令增量迭代的方式遍历出以【XX】为前缀的key;然后通过unlink函数删除指定的key即可。

推荐:《redis教程》
php redis批量删除key
摘要
使用scan命令增量迭代的方式遍历出以XX为前缀的key,然后删除
简介
在实际开发中,一不小心redis就会混入一些无用的数据,比如某位大哥忘记给加上缓存时间,或者因为业务修改需要将数据结构list改为zset,之前的缓存就没用了,但是过期时间有点长,这时候就需要批量删除key。如果使用keys命令遍历出符合条件的keys,会阻塞redis的其他操作,在生产环境是肯定不行的,于是祭出scan命令大杀器。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$redis = new \Redis();
$timeout = 2.5;
$ip = '127.0.0.1' ;
$redisConfArr = [
[ $ip , 8001],
[ $ip , 8002],
[ $ip , 8003]
];
foreach ( $redisConfArr as $redisConf ) {
$redis ->pconnect( $redisConf [0], $redisConf [1], $timeout );
$redis ->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);
$it = NULL;
while ( $arr_keys = $redis ->scan( $it , CacheKeyConfig::CachePre. '*' )) {
if ( is_array ( $arr_keys )) {
$result = $redis ->del( $arr_keys );
echo $result . PHP_EOL;
}
}
echo "OK!" . PHP_EOL;
}
|
以上就是php redis批量删除key的方法的详细内容,更多文章请关注木庄网络博客!
转载请注明出处:木庄网络博客 » php redis批量删除key的方法