php redis的scan用法实例分析

在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的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

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

--结束END--

本文标题: php redis的scan用法实例分析

本文链接: https://www.lsjlt.com/news/33.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php redis的scan用法实例分析

    在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的key值,可通过匹配的方式进行查询后删除。但是使用keys会导致redis服务器宕机。慎用。。。一般公司也会禁用keys等比较敏感的命令的。所以工作中会使用scan命令来进行匹配查询SCAN cur
    阅读数:688 php redis scan
  • php桥接模式的实例用法及代码分析

    在本篇内容里小编给大家整理了一篇关于php桥接模式的实例用法及代码分析内容,有需要的朋友们可以学习下。
    阅读数:191 php 桥接模式
  • Redis SCAN命令详解

    目录1. 获取指定前缀的key需求描述:解决方案:2. SCAN命令Redis Scan 命令用于迭代数据库中的数据库键。SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新
    阅读数:829 Redis SCAN命令 Redis SCAN
  • Redis SCAN命令详解

    SCAN命令是一个基于游标的迭代器,每次被调用之后,都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为SCAN命令的游标参数,以此来延续之前的迭代过程,这篇文章给大家介绍了Redis SCAN命令的相关知识,感兴趣的朋友一起看看吧
    阅读数:377 Redis SCAN命令 Redis SCAN
  • php中intval()的实例用法

    在本篇文章里小编给大家整理了一篇关于php中intval()的实例用法及相关内容,有兴趣的朋友们可以学习参考下。
    阅读数:214 php intval()
  • php memcached的实例用法详解

    在本篇文章里小编给大家整理了一篇关于php memcached的实例用法内容,有兴趣的朋友们可以跟着学习参考下。
    阅读数:924 php memcached
  • Redis的使用实例分析

    这篇文章主要介绍“Redis的使用实例分析”,在日常操作中,相信很多人在Redis的使用实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis的使用实例分析”的疑惑有所帮助!接下来,请跟着小编一起来
    阅读数:645 redis
  • Redis中用scan替换keys的方法

    我们都知道查找 Redis 的键时,可以使用 keys pattern,但当 key 太多时,keys 命令的效率就很低,如果在线上直接使用,甚至可能发生生产事故,这时候,我们不妨使用 scan 命令。SCAN 命令是一个基于游标的迭代器(
    阅读数:826 redis scan keys
  • redis的scan语法及作用对象

    这篇文章主要讲解了“redis的scan语法及作用对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“redis的scan语法及作用对象”吧!redis的scan
    阅读数:624 redis
  • redis-exporter监控redis的实例分析

    本篇内容介绍了“redis-exporter监控redis的实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!version: 0.x.
    阅读数:917 redis redis-exporter
  • Redis中Scan命令的基本使用教程

    前言Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,一是keys命令,简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的
    阅读数:720 redis scan 命令
  • Redis中Scan命令的使用方法

    小编给大家分享一下Redis中Scan命令的使用方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,一是keys命令
    阅读数:413 redis edi
  • redis的bitmap使用实例分析

    这篇文章主要讲解了“redis的bitmap使用实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“redis的bitmap使用实例分析”吧!1.位图简介如果我们需要记录某一用户在一年中每
    阅读数:540 redis bitmap
  • Scan命令怎么在Redis 中使用

    这期内容当中小编将会给大家带来有关Scan命令怎么在Redis 中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 概述SCAN 命令以及比较相近的 SSCAN、HSCAN 和 ZSCAN 命令都用
    阅读数:148 redis scan
  • Redis发布订阅实例分析

    这篇文章主要介绍了Redis发布订阅实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis发布订阅实例分析文章都会有所收获,下面我们一起来看看吧。Redis 发布订阅(pub/sub)是一种消息通信模
    阅读数:731 redis
  • GoFrame框架Scan类型转换实例

    这篇文章主要为大家介绍了GoFrame框架Scan类型转换的实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
  • Redis中scan命令的作用是什么

    这期内容当中小编将会给大家带来有关Redis中scan命令的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SCAN 命令SCAN命令的有SCAN,SSCAN,HSCAN,ZSCAN。 SCAN的
    阅读数:752 redis scan
  • redis keys与scan命令的区别说明

    这篇文章主要介绍了redis keys与scan命令的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    阅读数:619 redis keys命令 scan命令
  • php连接redis中incr的用法是什么

    在PHP中,redis的Incr命令用于将key中储存的数字值增一,如果key不存在,那么key的值会先被初始化为0然后再执行Incr操作,返回的结果是执行Incr命令后key的值,语法为“INCR KEY_NAME”。
    阅读数:941 PHP
  • redis 替代php文件存储session的实例

    redis 替代php文件存储session的实例查看实例之前请先了解 PHP session_set_save_handler函数的用法定义个SessionManager类class SessionManager {privat
    阅读数:739 实例 文件 redis