Redis --- 从海量Key里面查询出某一固定前缀

本文探讨了在大量Redis键中查询特定前缀的方法,包括`KEYS`命令的潜在问题及其对服务的影响,以及如何使用`SCAN`命令进行游标迭代查询,同时注意游标不递增和数据重复的问题。提供了批量生成测试数据的方法,并强调在实际操作中需考虑性能和内存消耗。
摘要由CSDN通过智能技术生成

留言细节

摸清数据规模,即问清楚边界

使用 keys 对线上的业务的影响

KEYS pattern : 查询所有符号给定模式pattern 的key

dbsize 查看数据量

批量生成Redis的测试数据

1、linux Bash 下面执行

for((i=1;i<=20000000;i++));do echo "set k$i v$i " >> /tmp/redisTest ;done;

生成2千万条批量测试kv的语句(key=kn)(value=vn) 写入到/tmp目录下的redisTest.txt 文件中

2、用vim去掉行尾的^M符号,使用方式如下:

vim /temp/redisTest

:set fileformat=dos #设置文件格式,通过这句话去掉行尾的^M符号

: : wq 保存退出

3、通过Redis提供的管道--pipe形式,去跑Redis,传入文件指令批量灌输数据,需要花十分钟左右

cat /temp/redisTest.txt | 路径/redis-5.0.0/src/redis-cli -h 主机ip -p 端口号pipe

一、使用keys k1*

当Redis中的key非常多的时候,对内存的消化,和Redis服务器是一个隐患

KEYS 指令一次性返回所有匹配的key

键的数量过于大会使服务卡顿

二、SCAN cursor [MATCH pattern] [COUNT count]

基于游标的迭代器,需要基于上一次的游标延续之前的迭代过程

以0作为游标开始一次新的迭代,直到命令返回游标0完成一次遍历

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值