redis 上的 keys 命令行为与 aws 上的 redis 集群
keys command behavior on redis vs redis cluster on aws
Redis 有点新手...
我注意到 redis 上有一个奇怪的行为..
当我 运行 在本地使用 redis 并使用命令 'keys *' - 我 get\see 系统中的所有密钥 - 根据文档,这没问题。
当我在 aws 上以 Elasticache\cluster 模式 运行 redis 并使用命令 'keys *' - 我只得到
'1) "ElastiCacheMasterReplicationTimestamp"' 在所有 3 个红色服务器上。
我试过其他命令来查找丢失的信息,但无济于事。
我们的 app\server 似乎运行正常,所以有些东西工作正常,但什么地方?
我已阅读文档,但找不到任何内容。
谁能解释一下?
非常感谢。
Redis 集群不支持 KEYS
命令。您只能向单个 Redis 实例发送 KEYS
命令。
在生产环境中使用KEYS
命令不是一个好主意,尤其是当你在Redis中有太多键时(它会长时间阻塞Redis)。
如果你非要获取你的Redis Cluster中的所有key,你就得自己实现,还有an example
我建议确认应用程序的配置以确保它指向 ElasticCache 设置。 Redis 集群和 ElasticCache 是不同的东西。因此,它是否支持 keys 命令是无关紧要的。如果 ElasticCache 不支持 keys 命令,作为 Redis 兼容服务器,它会 return 一个错误,而不是一个不完整的键列表。
如果您的密钥设置了过期时间,您可能没有看到它们,因为那时它们已过期。但也有可能它正在与不同的服务器对话,甚至只是吞下错误。我们没有办法做到这一点。
但是,您可以使用 info 命令及其子命令(例如 info commandstats
)来确保命令确实在其上 运行。如果您没有看到您的应用程序使用的列出的命令,则您的应用程序没有与其对话。
Redis 有点新手...
我注意到 redis 上有一个奇怪的行为.. 当我 运行 在本地使用 redis 并使用命令 'keys *' - 我 get\see 系统中的所有密钥 - 根据文档,这没问题。
当我在 aws 上以 Elasticache\cluster 模式 运行 redis 并使用命令 'keys *' - 我只得到 '1) "ElastiCacheMasterReplicationTimestamp"' 在所有 3 个红色服务器上。 我试过其他命令来查找丢失的信息,但无济于事。 我们的 app\server 似乎运行正常,所以有些东西工作正常,但什么地方? 我已阅读文档,但找不到任何内容。
谁能解释一下? 非常感谢。
Redis 集群不支持 KEYS
命令。您只能向单个 Redis 实例发送 KEYS
命令。
在生产环境中使用KEYS
命令不是一个好主意,尤其是当你在Redis中有太多键时(它会长时间阻塞Redis)。
如果你非要获取你的Redis Cluster中的所有key,你就得自己实现,还有an example
我建议确认应用程序的配置以确保它指向 ElasticCache 设置。 Redis 集群和 ElasticCache 是不同的东西。因此,它是否支持 keys 命令是无关紧要的。如果 ElasticCache 不支持 keys 命令,作为 Redis 兼容服务器,它会 return 一个错误,而不是一个不完整的键列表。
如果您的密钥设置了过期时间,您可能没有看到它们,因为那时它们已过期。但也有可能它正在与不同的服务器对话,甚至只是吞下错误。我们没有办法做到这一点。
但是,您可以使用 info 命令及其子命令(例如 info commandstats
)来确保命令确实在其上 运行。如果您没有看到您的应用程序使用的列出的命令,则您的应用程序没有与其对话。