0

有点redis的新手...

我注意到 redis 上有一个奇怪的行为。当我在本地运行 redis 时,使用命令'keys *' - 我得到\查看系统中的所有键 - 这没关系,根据文档。

当我在 aws 上以 Elasticache\cluster 模式运行 redis 并使用命令 'keys *' - 我在所有 3 台 reds 服务器上只得到 '1) "ElastiCacheMasterReplicationTimestamp"'。我尝试了其他命令来查找丢失的信息,但无济于事。我们的应用程序\服务器似乎运行正常,所以有些东西工作正常,但是什么和在哪里?我已阅读文档,但找不到任何关于此的内容。

谁能解释一下?非常感谢。

4

2 回答 2

0

KEYSRedis 集群不支持该命令。您只能向KEYS单个 Redis 实例发送命令。

在生产环境中使用命令不是一个好主意KEYS,尤其是当你在 Redis 中有太多键时(它会阻塞 Redis 很长时间)。

如果您坚持要获取 Redis 集群中的所有密钥,则必须自己实现,并且有一个示例

于 2016-09-05T02:25:59.173 回答
0

我建议确认应用程序的配置以确保它指向 ElasticCache 设置。Redis 集群和 ElasticCache 是不同的东西。因此,它是否支持keys命令是无关紧要的。如果 ElasticCache 不支持 keys 命令,作为 Redis 兼容服务器,它将返回错误,而不是不完整的键列表。

如果您的密钥设置了过期时间,您可能没有看到它们,因为此时它们已过期。但也有可能它正在与不同的服务器通信,甚至只是吞下错误。我们无从得知这一点。

但是,您可以使用 info 命令及其子命令,例如info commandstats确保命令确实在其上运行。如果您没有看到列出的应用程序使用的命令,则说明您的应用程序没有与它对话。

于 2016-09-05T19:02:39.717 回答