千家信息网

Redis如何获取某个前缀的key脚本

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要介绍了Redis如何获取某个前缀的key脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.背景在平时的维护中,经常会遇
千家信息网最后更新 2025年11月14日Redis如何获取某个前缀的key脚本

这篇文章主要介绍了Redis如何获取某个前缀的key脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1.背景

在平时的维护中,经常会遇到要统计某个前缀的key有多少,在请求比较多的redis中,keys * 会直接导致阻塞。
可以采用scan的方式进行增量迭代,查询使用pipeline减少交互,提高效率。

2.scan命令的优缺点

SCAN命令的有SCAN,SSCAN,HSCAN,ZSCAN。

SCAN的话就是遍历所有的keys

其他的SCAN命令的话是SCAN选中的集合。

SCAN命令是增量的循环,每次调用只会返回一小部分的元素。所以不会有KEYS命令的坑。

SCAN命令返回的是一个游标,从0开始遍历,到0结束遍历。

scan 01) "655"2) 1) "test1"  2) "test2"

返回值一个array,一个是下次循环的cursorId,一个是元素数组。SCAN命令不能保证每次返回的值都是有序的,另外同一个key有可能返回多次,不做区分,需要应用程序去处理。

另外SCAN命令可以指定COUNT,默认是10。但是这个并不是指定多少,就能返回多少,这只是一个提示,并不能保证一定返回这么多条。

优点:

  • 提供键空间的遍历操作,支持游标,复杂度O(1), 整体遍历一遍只需要O(N);

  • 提供结果模式匹配;

  • 支持一次返回的数据条数设置,但仅仅是个hints,有时候返回的会多;

  • 弱状态,所有状态只需要客户端需要维护一个游标;

缺点:

  • 无法提供完整的快照遍历,也就是中间如果有数据修改,可能有些涉及改动的数据遍历不到;

  • 每次返回的数据条数不一定,极度依赖内部实现;

  • 返回的数据可能有重复,应用层必须能够处理重入逻辑;

3. python脚本的实现

python中有一个封装的函数scan_iter--查看所有元素--迭代器

脚本内容:

#!/usr/bin/env python# -*- coding: UTF-8 -*- #作用:统计某个前缀key的个数,并将其输入到文件#使用方法:python scan_redis.py apus* 100__author__ = "lcl" import sysimport redis import os pool=redis.ConnectionPool(host='192.168.225.128',port=6379,db=0) r = redis.StrictRedis(connection_pool=pool) #扫描匹配值,通过sys.argv传参match = sys.argv[1]#每次匹配数量count = sys.argv[2]#print match#print count#总数量total = 0#扫描到的key输出到文件path = os.getcwd()#扫描到的key输出的文件txt = path+"/keys.txt"f = open(txt,"w")for key in r.scan_iter(match = match,count = count):# f.write("%s %s" % (key,"\n")) f.write(key+"\n") total = total+1f.closeprint "匹配: %s 的数量为:%d " % (match,total)

感谢你能够认真阅读完这篇文章,希望小编分享的"Redis如何获取某个前缀的key脚本"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

命令 数据 前缀 脚本 篇文章 元素 数量 文件 游标 支持 增量 状态 保证 处理 应用 循环 统计 输出 迭代 复杂 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 工业服务器为什么有多个网口 服务器如何应用国产加密技术 即时通讯软件开发哪里做得 国家网络安全周主要是 警示网络安全 融合刀片服务器 奥维互动地图软件开发公司 计算机考试网络技术几号考 云仓库如何做数据库 怎么查看计算机数据库 河南暴雨影响网络服务器虚拟主机 数据库的操作语言是什么 连接vps服务器 数据库的存取控制机通常采用的是 众筹互联网科技有限公司 老头环登不上游戏服务器 在线查询中国移动服务器密码 2020年网络安全周期 数据库删除字段了怎么恢复 业务系统的运行服务器是什么 惠普dl380p服务器指示灯 嵌入式软件开发待遇专科 网站服务器出现问题 通讯网络技术专利排名 nba球员数据库最新排名 计算机网络技术将来就业前景 中通吉网络技术有限公司看准网 软件开发时间与测试时间比 上海自媒星互联网科技简介 聚焦网络技术团队
0