Redis-渐进式遍历scan的使用

目录

1、为什么使用渐进式遍历?

2、scan的使用

3、渐进式遍历的缺点

4、补充知识点:redis中也区分database 


1、为什么使用渐进式遍历?

        前面的博客中,我们有提到使用keys *来获取所有的key,但这种办法,当Redis中存储的有很多key时,实行此命令所耗费的时长就会很长,不符合使用规范,redis一般情况下,都会要求命令执行时,短平快~

         因此提出使用渐进式遍历,也就是说,在不能使用keys *的情况下,我又想获取redis中的所有的key,就需要使用渐进式命令,所谓渐进,就是循序渐进,我们一次取出一点,直到取完~

        渐进式命令,有一组命令,我们暂时只介绍一种scan,其他命令的使用都是一样的~


2、scan的使用

  • scan:渐进式遍历redis中当前数据库中的数据库键key
  • 语法:scan cursor [MATCH pattern] [COUNT count] [TYPE type]
  • 参数说明1:cursor->光标位置。填写光标位置,就从指定位置开始往后遍历
  • 参数说明2:MATCH->通配符参数,和keys命令一样~
  • 参数说明3:COUNT->往后遍历多少个元素【默认为10】
  • 参数说明4:TYPE->指定只遍历某个数据类型
  • 返回值:类似于一个二元组,第一个元素为下一次遍历时从哪个光标开始【为0时,说明遍历结束】;第二个元素是一个列表,此次遍历所取到的key有哪些~

举例:


3、渐进式遍历的缺点

  •  渐进式遍历时,虽然解决了阻塞问题,但是如果遍历期间,redis内部的key有所变化,可能会导致遍历中的key会重复遍历,或者是遗漏~

4、补充知识点:redis中也区分database 

  • redis中,页存在database,平时我们会默认使用0号database;
  • redis中,默认提供了16了database
  • 使用命令select dbIndex来切换不同的database
  • 命令flushall是删除所有database中的所有key;
  • 命令flushdb是删除当前database中的偶有key; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙洋静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值