Redis-从海量数据里查询某一固定前缀的key

文章目录

    • 生产环境,查找key开头的数据
      • key查询全部
      • scan
    • 定制化开发包使用
    • 批量生成redis测试数据

生产环境,查找key开头的数据

场景模拟,线上Redis查询数据量大
key xx* 缺点
因为:
一次性返回数据量大,卡住。对内存消耗和Redis服务器都是隐患
建议:
时间花费,因为是分批次,会长
Scan无阻塞提取列表,每次执行返回少量元素
游标0->0,非递增小心要去重,存入HashSet
count是上下浮动的

key查询全部

Redis-从海量数据里查询某一固定前缀的key_第1张图片
时间消耗
Redis-从海量数据里查询某一固定前缀的key_第2张图片

scan

Redis-从海量数据里查询某一固定前缀的key_第3张图片

定制化开发包使用

不同语言对应不同开发包,改定制化需求

Redis-从海量数据里查询某一固定前缀的key_第4张图片

批量生成redis测试数据

batchRedis.txt
批量生成redis测试数据
1.Linux Bash下面执行
  for((i=1;i<=20000000;i++)); do echo "set k$i v$i" >> /tmp/redisTest.txt ;done;
  生成2千万条redis批量设置kv的语句(key=kn,value=vn)写入到/tmp目录下的redisTest.txt文件中
2.用vim去掉行尾的^M符号,使用方式如下::
  vim /tmp/redisTest.txt
    :set fileformat=dos #设置文件的格式,通过这句话去掉每行结尾的^M符号
    ::wq #保存退出
3.通过redis提供的管道--pipe形式,去跑redis,传入文件的指令批量灌数据,需要花10分钟左右
  cat /tmp/redisTest.txt | 路径/redis-5.0.0/src/redis-cli -h 主机ip -p 端口号 --pipe

你可能感兴趣的:(#,数据库)