Redis-键遍历

1.全量遍历键

keys pattern

支持pattern匹配,使用的是glob风格的通配符

*代表匹配任意字符

?匹配一个字符

[]代表匹配部分字符[1,3]代表匹配1,3,[1-10]代表匹配1到10的任意数字

\x用来做转义,匹配星号和问号需要进行转义

删除所有以video字符串开头的键,redis-cli keys video* | xargs redis-cli del

Redis是单线程架构,执行keys很可能造成阻塞,生产环境可以执行如下操作:

1.在一个不对外提供服务的Redis从节点上执行,这样不会阻塞客户端的请求,但是会影响主从复制

2.如果键值总数确实比较少,可执行

3.使用scan命令渐进式的遍历所有的键

2.渐进式遍历

scan采用渐进式遍历的方式来解决keys命令带来的阻塞问题,每次执行时间复杂度是O(1),需执行多次scan,每次执行只扫描一个字典中的一部分键,直到将字典中的所有键遍历完成

scan cursor [match pattern] [count number]

Redis 提供hscan sscan zscan防止执行hgetall smembers zrange 可能产生的阻塞问题

如果在scan的过程中有键的变化,那么在遍历可能会新增的键没有遍历到

你可能感兴趣的:(Redis,redis)