当前位置:   article > 正文

redis渐进式遍历

redis渐进式遍历

redis使用scan命令进行渐进式遍历键,进而解决直接使用keys获取键时可能出现的阻塞问题。每次使用scan命令的时间复杂度是O(1),但是要完整的完成所有键的遍历,需要执行多次scan命令。
scan命令渐进式遍历过程

scan

语法:scan cursor [match pattern] [count count] [type type]

  • cursor:光标,不是下标具体看上图
  • match:匹配规则,和keys命令一样
  • count:一次遍历大概获取到多少个元素,默认是10个

此处的count和mysql的limit不一样,limit是一个精确值,而count只是给redis服务器一个提示/建议,返回的key的个数不一定等于count,但是不会相差很多

  • type:选出和type类型相同

示例如下
image.png
redis5中没有type选项
image.png
scan的渐进式遍历,不会在redis服务器中存储任何状态信息,也就是说遍历可以随时终止,不会对服务器产生任何副作用。
:::danger
注意:渐进式遍历虽然解决了阻塞问题,但是如果在遍历期间键有所变化(增加,修改,删除),可能导致重复遍历或者遗漏键
:::

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/658590
推荐阅读
相关标签
  

闽ICP备14008679号