PHP项目中scan命名有何用,redis扩展支持scan怎么实现
Admin 2022-05-27 群英技术资讯 797 次浏览
在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的key值,可通过匹配的方式进行查询后删除。
但是使用keys会导致redis服务器宕机。慎用。。。
一般公司也会禁用keys等比较敏感的命令的。
所以工作中会使用scan命令来进行匹配查询
SCAN cursor [MATCH pattern] [COUNT count]
比如
# 从游标 0 开始扫描 匹配 test1:* 的键值,一次扫描1000条 scan 0 match test1:* count 1000
1) 表示下一次扫描的游标值 ,命令行显示的是字符串类型的。
2)表示本次扫描匹配到的键值列表
用php代码怎么实现呢,举个例子
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命令实现方法
# git clone https://github.com/phpredis/phpredis # cd phpredis # /opt/php/bin/phpize # ./configure --with-php-config=/opt/php/bin/php-config # make && make install
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
百钱百鸡的问题具体是:公鸡5元一只,母鸡3元一只,然后小鸡元三只,花了100元买了100只鸡,问公鸡、母鸡、小鸡各买了多少只?看到这个问题,我们可能首先想到的就是一种一种进行循环列举,然后筛选符合要求,也就是所谓的穷举法。由于我们要考虑性能,所以引入一个count记录循环的次数。
php返回json数据:1、PHP中的json_encode()用于JSON编码变量,如果功能成功返回JSON数据,则返回FALSE。2、string json_encode ( $value [, $options = 0 ] )。
PHP成为最流行的脚本语言有许多原因:灵活性,易用性等。我们通常需要一个PHP框架来代替程序员完成那些重复的部分。PHP框架是什么?PHP框架提供了一个用以构建web应用的基...
Direct IO 其实是 Linux 操作系统中的一个概念,今天通过本文给大家介绍PHP中DirectIO直操作文件扩展的使用,需要的朋友参考下吧
我们知道PHP中很多数组排序函数,之前我们了解升序排序sort函数,这篇文章就带大家了解一下降序排序rsort函数,降序排序就是从高到低排序,可见rsort函数和sort函数是相反,那么语法和返回值会有所不同吗?下面我们来具体看看rsort函数以及实例
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008