Redis-安全地检索生产数据库中的一小组密钥

Redis-安全地检索生产数据库中的一小组密钥,redis,Redis,我不认为有答案,但我希望有东西在那里。 在生产中,使用密钥是一种不好的做法,因为它会扫描所有记录(O(n))。 如果存在大量关键点,则可能会影响性能 假设数据库中有大量的密钥,是否有安全的方法获取其中的一些密钥?如果我只想看一张唱片,而我真的不在乎我得到了什么 我知道这更像是一个设计问题(例如使用选择、使用集),除非我知道数据库中没有大量数据,否则我永远不应该真正需要运行键。其动机更多的是出于谨慎,因此我不会在某一天运行keys并杀死db,因为我所处的数据库与我想象的不同。建议的方法(从v2.8

我不认为有答案,但我希望有东西在那里。 在生产中,使用密钥是一种不好的做法,因为它会扫描所有记录(O(n))。 如果存在大量关键点,则可能会影响性能

假设数据库中有大量的密钥,是否有安全的方法获取其中的一些密钥?如果我只想看一张唱片,而我真的不在乎我得到了什么


我知道这更像是一个设计问题(例如使用选择、使用集),除非我知道数据库中没有大量数据,否则我永远不应该真正需要运行键。其动机更多的是出于谨慎,因此我不会在某一天运行keys并杀死db,因为我所处的数据库与我想象的不同。建议的方法(从v2.8开始)是使用命令(和同级)。扫描基本上允许您使用光标在键空间中迭代,这样您就不会阻止其他操作。

您应该可以在控制台中运行
keys
,即使在生产数据库上也是如此。我认为更值得注意的是,您不想根据
方法编写代码。@bgschiller-不,即使在控制台中,键也是危险的。原因是,由于Redis(大部分)是单线程的,运行长时间运行的命令(如密钥)可能会导致DoS。要解决意外运行的密钥问题,请使用Redis配置文件中的rename command选项(通过重命名为空字符串)重命名或删除不应运行密钥命令的服务器上的密钥命令。