php redis的scan用法实例分析

admin3年前PHP教程26

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

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

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

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

?

1
SCAN cursor [MATCH pattern] [COUNT count]






比如

?

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






1) 表示下一次扫描的游标值 ,命令行显示的是字符串类型的。
2)表示本次扫描匹配到的键值列表

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

?

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






内容扩展

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

?

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






到此这篇关于php redis的scan用法实例分析的文章就介绍到这了,更多相关php redis的scan用法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:php/php-weizijiaocheng-485532

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

租用高防服务器时重点看哪几个参数?国内100G高防服务器购买需要注意哪些事项?

高防服务器主要是针对公司客户的,高防服务器给客户提供了更加安全的网络执行环境,为客户提供安全的确保。在租赁高防服务器时,大家应该关注哪些参数呢?一起来了解一下。就服务器配置而言,通常会关注4点:cpu...

php fopen()函数案例详解

定义和用法fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。语法fopen(filename,mode,include_path,context)参数描述filename...

法国服务器租用注意什么问题

法国服务器租用注意什么问题?租用法国服务器时需要注意以下几个问题:法律合规性:在法国进行服务器租赁的企业必须遵守法国的相关法律法规,包括税务法、金融法、数据隐私法等。数据安全:为了保护企业的数据安全,...

PHP常见算法合集代码实例

许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣,下面是一些常用的算法和实例,大家可以好好学习下一、文件夹遍历<?phpfunction allFile($path =...

租用国外多ip服务器之前要考虑什么国外多ip服务器租用注意事项

租用国外多ip服务器之前要考虑什么?1、选择安全性高的国外多ip服务器选择国外多ip服务器要选择安全性高的服务器,避免服务器受攻击不能正常使用时出现全部网站都打不开的情况。专业的提供商所提供的服务器机...

利用PHP实现递归删除链表元素的方法示例

前言这篇文章介绍一下 递归,递归的本质是将原来的问题转化为更小的同一个问题,解决这些更小问题的过程。下面通过两个递归的例子帮助学习对递归的理解。1.递归数组求和例如某个数组 $arr = [1,2,3...