请问有没有好的方法遍历redis里面的所有key。。?
发布于 11 年前 作者 2225377fjs 48704 次浏览 最后一次编辑是 7 年前

如题,因为一些需要,想要遍历redis里面的所有key,不知道有没有什么好的方法。。?

8 回复

这样貌似不太好啊,难道没有就像读文件一样。。一行一行的读进来的么。。主要是key太多的话,怕出问题。。。

@2225377fjs 这个就是官方内置命令(redis 的命令手册里面你的需求貌似只有这个命令了)。。性能方面的话,官方的警告(不知道你看了没。。)如果是很大的数据库(个人感觉应该是GB级别以上的数据库)就不要用这种。。。

@2225377fjs 话说,你可以结合一下业务测一下,对于redis而言,个人感觉数据量如果不到gb级别的话,redis随便处理。。。

@youxiachai 关键是 数据确实到了GB级别。。。。

@2225377fjs 新浪有个视频提到这个问题了,解决这个问题。你的infoQ 看看

@hexie 印象中,他们的处理是前面多架了一个缓存服务器,如果是一个个读,可以提供一个简单的思路,仅供参考 redis: keys * 匹配出所有的key,然后对于每个key读取内容。 当然要根据你的redis数据结构来定。

@hexie 另外你可以对你的 key 分批做索引,就是将这些 key 存到缓存的list 里面,分批,例如,前100个key的list 就是 key:0:100 key:100:200 大概这样

回到顶部