广告
返回顶部
首页 > 资讯 > 数据库 >Redis中用scan替换keys的方法
  • 837
分享到

Redis中用scan替换keys的方法

2024-04-02 19:04:59 837人浏览 薄情痞子
摘要

我们都知道查找 Redis 的键时,可以使用 keys pattern,但当 key 太多时,keys 命令的效率就很低,如果在线上直接使用,甚至可能发生生产事故,这时候,我们不妨使用 scan 命令。SC

我们都知道查找 Redis 的键时,可以使用 keys pattern,但当 key 太多时,keys 命令的效率就很低,如果在线上直接使用,甚至可能发生生产事故,这时候,我们不妨使用 scan 命令。

SCAN 命令是一个基于游标的迭代器(cursor based iterator):

SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。

当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束。

生成 key

<?PHP
// 生成1000个
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379, 10);
$redis->select(2);
$arr = [
    'rwer',
    '24erw',
    'rterq4',
    'sdgfd5',
    'dgsdg',
    'sfst',
];
for ($i=0; $i<1000; $i++) {
    $redis->set(md5($i.$arr[$i%6]), md5($arr[$i%6].'sdfsd'));
}
echo "OK".php_EOL;

keys 查看个数

keys c*

Redis中用scan替换keys的方法

Redis中使用scan替换keys

scan 遍历

<?php
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379, 10);
$redis->select(2);
$iterator = null;
// 遍历前缀
$pattern = 'c*';
$count = 100;
// 务必设置,如果没扫描到,继续扫描,而不是返回空,否则while直接退出,遍历就会不准确
$redis->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);
$total = [];
$i = 0;
// $count可以不设置,非必需参数
while($arr = $redis->scan($iterator, $pattern, $count)) {
    $arrVal = $redis->mget($arr);
    $ret = array_combine($arr, $arrVal);
    $total = array_merge($total, $ret);
    $i++;
}
// var_dump($total);
var_dump($i);
echo count($total).PHP_EOL;

Redis中使用scan替换keys

Redis中用scan替换keys的方法

当然你也可以不使用 \Redis::OPT_SCAN, \Redis::SCAN_RETRY 这两个参数,自行循环,判断返回值是不是 false,也能遍历成功。

以上就是Redis 中如何使用 scan 替换 keys的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Redis中用scan替换keys的方法

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis中用scan替换keys的方法
    我们都知道查找 Redis 的键时,可以使用 keys pattern,但当 key 太多时,keys 命令的效率就很低,如果在线上直接使用,甚至可能发生生产事故,这时候,我们不妨使用 scan 命令。SC...
    99+
    2022-10-18
  • Redis中Scan命令的使用方法
    小编给大家分享一下Redis中Scan命令的使用方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,...
    99+
    2022-10-18
  • VBS中Keys方法的使用
    本篇内容介绍了“VBS中Keys方法的使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Keys 方法返回一数组,其中包含有 Diction...
    99+
    2023-06-08
  • Android string.xml中的替换方法
    本文实例讲述了Android string.xml中的替换方法。分享给大家供大家参考,具体如下: 在android的开发中,经常会遇见一句话,比如“我今年23岁了”;这个23需...
    99+
    2022-06-06
    XML 替换 方法 string Android
  • Pandas中inf值替换的方法
    目录出现inf的原因解决办法PS:为了方便后续处理,可以利用numpy,将这些inf值进行替换。使用Pandas从MySQL读取数据,在处理之后再写回到数据库时报了一个错误: sql...
    99+
    2022-11-11
  • TOMCAT用https替换http的方法
    1.首先用jdk自带的工具keytool生成一个证书keystoreJAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore...
    99+
    2023-06-03
  • Redis 不使用 keys 命令获取键值信息的方法
    1. 问题来源 这个问题可能看起来很奇怪,但很多 redis 集群会有一个统一的入口,入口会作兼容 redis 命令的代理,一般出于新能考虑是禁止使用 keys 命令来获取键值信息的,但是可以通过 scan...
    99+
    2022-10-18
  • php中replace正则替换方法的使用
    本篇内容主要讲解“php中replace正则替换方法的使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中replace正则替换方法的使用”吧!php replace函数用于执行一个正则表...
    99+
    2023-06-20
  • uniapp中实现换行替换的几种方法
    在进行uniapp开发的时候,我们常常需要对文字的显示做一些特殊的处理。其中一个常见的问题是如何实现换行替换。在这篇文章中,我们将介绍uniapp中实现换行替换的几种方法。使用正则表达式首先,我们可以使用正则表达式来进行换行替换。具体的代码...
    99+
    2023-05-14
  • Golang中的替换操作方法是什么
    本篇内容介绍了“Golang中的替换操作方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Golang的字符串动态变量Golang 的...
    99+
    2023-07-05
  • php中preg_replace替换失败的解决方法
    小编给大家分享一下php中preg_replace替换失败的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php preg_replace替换失败的解决办法:首先打开相应的PHP代码文件;然后将替换不了的字符,打印...
    99+
    2023-06-06
  • Java中常用的替换字符的方法有哪些
    Java中常用的替换字符的方法有以下几种: 使用String类中的replace()方法:该方法接受两个参数,第一个参数是要被替换...
    99+
    2023-10-28
    Java
  • JavaScript 中替换字符串的方法有几种
    这篇文章主要介绍“JavaScript 中替换字符串的方法有几种”,在日常操作中,相信很多人在JavaScript 中替换字符串的方法有几种问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2022-10-19
  • php中替换字符串str_replace函数的方法
    这篇文章将为大家详细讲解有关php中替换字符串str_replace函数的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在php中str_replace函数可以替换字符串中的一些字符(区分大小写),用...
    99+
    2023-06-06
  • ubuntu中vim替换字符的方法是什么
    这篇“ubuntu中vim替换字符的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ubuntu中vim替换字符的方...
    99+
    2023-07-04
  • React替换传统拷贝方法的Immutable使用
    目录immutable安装使用Map嵌套MapList实现个人修改案例immutable 它是一款代替传统拷贝方式的第三方库 优势: 在新对象上操作不会影响原对象的数据性能好 安装使...
    99+
    2023-02-06
    React Immutable React Immutable使用
  • java中怎么用replace方法替换指定位置
    在Java中,可以使用`replace`方法来替换指定位置的字符。`replace`方法有两个参数,第一个参数是要替换的起始位置,第...
    99+
    2023-10-25
    java
  • Pandas中批量替换字符的方法有哪些
    本篇内容介绍了“Pandas中批量替换字符的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言前几天在Python最强王者群有...
    99+
    2023-06-29
  • dedecms批量替换文章中超链接的方法
    本文实例讲述了dedecms批量替换文章中超链接的方法。分享给大家供大家参考。具体分析如下: 我自己的一个网站由以前采集里面有很多连接没有过滤掉,现在想再过滤这些连接了,找了很多找到了一个解决办法,下面分享给各位朋友有需...
    99+
    2022-06-12
    dedecms 批量 替换 文章 超链接 方法
  • 一文带你了解C++中的字符替换方法
    目录一、单个字符替换1.1 std::replace1.2 使用循环手动替换1.3 使用正则表达式库(例如,std::regex_replace)   ...
    99+
    2023-05-18
    C++字符替换方法 C++字符替换 C++字符
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作