假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以 某个固定的已知的前缀开头的,如果将它们全部找出来?

使用 keys 指令可以扫出指定模式的 key 列表

对方接着追问如果这个 redis 正在给线上的业务提供服务那使用 keys 指令会 

有什么问题

这个时候你要回答 redis 关键的一个特性:redis 的单线程的。keys 指令会导致线 

程阻塞一段时间线上服务会停顿直到指令执行完毕服务才能恢复这个时 

候可以使用 scan 指令,scan 指令可以无阻塞的提取出指定模式的 key 列表 

是会有一定的重复概率在客户端做一次去重就可以了但是整体所花费的时间 

会比直接用 keys 指令长

posted @ 2020-05-02 20:32  咔啡  阅读(1628)  评论(0编辑  收藏  举报