Login
网站首页 > 文章中心 > 其它

Redis-Scan命令

作者:小编 更新时间:2023-09-21 11:32:03 浏览量:6人看过

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Scan命令

Scan命令:从海量的 key 中找出满足特定前缀的 key 列表

查询key为某一类型的数据可能有很多方法,例如可以通过keys*或者是keys codehole*,查询key前缀为codehole的redis缓冲数据,但是当缓冲数据量比较大时,该命令表耗费时间,效率比较慢,具体的缺点如下列所说那样.

第一段:keys * 、keys codehole* 分别是查询全部的key以及查询前缀为codehole的key.特点太暴力,性能不好,搜索的是整个redis;

缺点:

①.、没有 offset、limit 参数,一次性吐出所有满足条件的 key,万一实例中有几百 w 个 key 满足条件,当你看到满屏的字符串刷的没有尽头时,你就知道难受了.

第二段:由于keys命令存在以上的缺点,所以redis引入以下scan命令,scan命令的特点:

①.、复杂度虽然也是 O(n),但是它是通过游标分步进行的,不会阻塞线程;

第三段:scan命令具体用法:

scan 参数提供了三个参数,第一个是 cursor 整数值,第二个是 key 的正则模式,第三个是遍历的 limit hint.第一次遍历时,cursor 值为 0,然后将返回结果中第一个整数值作为下一次遍历的 cursor.一直遍历到返回的 cursor 值为 0 时结束.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章