赞
踩
redis使用scan
命令进行渐进式遍历键,进而解决直接使用keys
获取键时可能出现的阻塞问题。每次使用scan
命令的时间复杂度是O(1),但是要完整的完成所有键的遍历,需要执行多次scan
命令。
语法:scan cursor [match pattern] [count count] [type type]
keys
命令一样此处的count和mysql的limit不一样,limit是一个精确值,而count只是给redis服务器一个提示/建议,返回的key的个数不一定等于count,但是不会相差很多
type
类型相同示例如下
redis5中没有type
选项
scan的渐进式遍历,不会在redis服务器中存储任何状态信息,也就是说遍历可以随时终止,不会对服务器产生任何副作用。
:::danger
注意:渐进式遍历虽然解决了阻塞问题,但是如果在遍历期间键有所变化(增加,修改,删除),可能导致重复遍历或者遗漏键
:::
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。