当前位置:首页 > PHP教程 > php应用 > 列表

php redis的scan用法实例分析

发布: 来源: PHP粉丝网  添加日期:2022-05-19 09:53:09 浏览: 评论:0 

在本篇文章了小编给大家整理了一篇关于php redis的scan用法实例分析内容,有兴趣的朋友们可以跟着学习下。

在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的key值,可通过匹配的方式进行查询后删除。

但是使用keys会导致redis服务器宕机,慎用。。。

一般公司也会禁用keys等比较敏感的命令的。

所以工作中会使用scan命令来进行匹配查询

SCAN cursor [MATCH pattern] [COUNT count]

比如:

# 从游标 0 开始扫描 匹配 test1:* 的键值,一次扫描1000条

scan 0 match test1:* count 1000

# 从游标 0 开始扫描 匹配 test1:* 的键值,一次扫描1000条

scan 0 match test1:* count 1000

php redis的scan用法实例分析

1) 表示下一次扫描的游标值 ,命令行显示的是字符串类型的。

2)表示本次扫描匹配到的键值列表

用php代码怎么实现呢,举个例子

  1. function getKeysByPattern($pattern
  2.     $keysList = []; 
  3.     while(true){ 
  4.         //@todo 这里的client替换为自己的redis客户端对象 
  5.         $keys = $client->scan($iterator$pattern,1000); 
  6.         $keysList = array_merge($keysList$keys??[]); 
  7.         if ($iterator === 0) {//迭代结束,未找到匹配pattern的key 
  8.             break
  9.         }   
  10.         if ($iterator === null) {//"游标为null了,重置为0,继续扫描" 
  11.             $iterator = "0"
  12.         } 
  13.     } 
  14.     $keysList = array_unique($keysList); 
  15.     return keysList; 

内容扩展

php redis扩展支持scan命令实现方法

  1. # git clone https://github.com/phpredis/phpredis 
  2. # cd phpredis 
  3. # /opt/php/bin/phpize  
  4. # ./configure --with-php-config=/opt/php/bin/php-config  
  5. # make && make install

Tags: redis scan

分享到: