返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php redis的scan用法实例分析
  • 688
分享到

php redis的scan用法实例分析

php redis scan 2021-03-01 14:03:38 688人浏览
摘要

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

在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的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桥接模式的实例用法及代码分析
    在本篇内容里小编给大家整理了一篇关于php桥接模式的实例用法及代码分析内容,有需要的朋友们可以学习下。 ...
    201
    2023-04-02
    php 桥接模式
  • Redis SCAN命令详解
    目录1. 获取指定前缀的key需求描述:解决方案:2. SCAN命令Redis Scan 命令用于迭代数据库中的数据库键。SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新 ...
    836
    2023-04-02
    Redis SCAN命令 Redis SCAN
  • Redis SCAN命令详解
    SCAN命令是一个基于游标的迭代器,每次被调用之后,都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为SCAN命令的游标参数,以此来延续之前的迭代过程,这篇文章给大家介绍了Redis SCAN命令的相关知识,感兴趣的朋友一起看看吧 ...
    378
    2023-04-02
    Redis SCAN命令 Redis SCAN
  • php memcached的实例用法详解
    在本篇文章里小编给大家整理了一篇关于php memcached的实例用法内容,有兴趣的朋友们可以跟着学习参考下。 ...
    934
    2023-04-02
    php memcached
  • php中intval()的实例用法
    在本篇文章里小编给大家整理了一篇关于php中intval()的实例用法及相关内容,有兴趣的朋友们可以学习参考下。 ...
    216
    2023-04-02
    php intval()
  • Redis的使用实例分析
    这篇文章主要介绍“Redis的使用实例分析”,在日常操作中,相信很多人在Redis的使用实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis的使用实例分析”的疑惑有所帮助!接下来,请跟着小编一起来 ...
    645
    2023-04-02
    redis
  • Redis中用scan替换keys的方法
    我们都知道查找 Redis 的键时,可以使用 keys pattern,但当 key 太多时,keys 命令的效率就很低,如果在线上直接使用,甚至可能发生生产事故,这时候,我们不妨使用 scan 命令。SCAN 命令是一个基于游标的迭代器( ...
    836
    2023-04-02
    redis scan keys
  • redis的scan语法及作用对象
    这篇文章主要讲解了“redis的scan语法及作用对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“redis的scan语法及作用对象”吧!redis的scan ...
    628
    2023-04-02
    redis
  • redis-exporter监控redis的实例分析
    本篇内容介绍了“redis-exporter监控redis的实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!version: 0.x. ...
    920
    2023-04-02
    redis redis-exporter
  • redis的bitmap使用实例分析
    这篇文章主要讲解了“redis的bitmap使用实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“redis的bitmap使用实例分析”吧!1.位图简介如果我们需要记录某一用户在一年中每 ...
    544
    2023-04-02
    redis bitmap
  • Redis中Scan命令的基本使用教程
    前言Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,一是keys命令,简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的 ...
    729
    2023-04-02
    redis scan 命令
  • Redis中Scan命令的使用方法
    小编给大家分享一下Redis中Scan命令的使用方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,一是keys命令 ...
    420
    2023-04-02
    redis edi
  • Android ViewFlipper用法实例分析
    本文实例讲述了Android ViewFlipper用法。分享给大家供大家参考,具体如下:这里实现的效果是当手动滑动手机屏幕时会一个一个地显示图片,一次显示一张图片package com.my.viewflippertest;impor ...
    199
    2023-04-02
    Android
  • PHP中strval()函数实例用法
    在本篇文章里小编给大家整理了一篇关于PHP中strval()函数实例用法,对此有兴趣的朋友们可以跟着学习参考下。 ...
    830
    2023-04-02
    PHP strval
  • Redis发布订阅实例分析
    这篇文章主要介绍了Redis发布订阅实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis发布订阅实例分析文章都会有所收获,下面我们一起来看看吧。Redis 发布订阅(pub/sub)是一种消息通信模 ...
    731
    2023-04-02
    redis
  • Scan命令怎么在Redis 中使用
    这期内容当中小编将会给大家带来有关Scan命令怎么在Redis 中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 概述SCAN 命令以及比较相近的 SSCAN、HSCAN 和 ZSCAN 命令都用 ...
    452
    2023-04-02
    redis scan
  • Redis中scan命令的作用是什么
    这期内容当中小编将会给大家带来有关Redis中scan命令的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SCAN 命令SCAN命令的有SCAN,SSCAN,HSCAN,ZSCAN。 SCAN的 ...
    758
    2023-04-02
    redis scan
  • redis keys与scan命令的区别说明
    这篇文章主要介绍了redis keys与scan命令的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...
    621
    2023-04-02
    redis keys命令 scan命令
  • GoFrame框架Scan类型转换实例
    这篇文章主要为大家介绍了GoFrame框架Scan类型转换的实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 ...
    399
    2023-04-02
    GoFrame框架Scan类型转换 GoFrame Scan类型转换
  • redis 替代php文件存储session的实例
    redis 替代php文件存储session的实例查看实例之前请先了解 PHP session_set_save_handler函数的用法定义个SessionManager类class SessionManager {privat ...
    759
    2023-04-02
    实例 文件 redis
热门问答
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作