我们正在为Redis使用ElastiCache,并被其Evictions
度量所混淆。
我很好奇Redis Info中evicted_keys
度量的单位是多少?ElastiCache的医生说这是一个计数:https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.Redis.html但是对于我们的应用;驱逐;度量(源自evicted_keys
(上下波动,表明它不是计数。我希望计数永远不会减少,因为我们不能";取消驱逐";钥匙。我想知道evicted_keys
是否真的是一个速率(例如,驱逐/秒(,这可以解释为什么它会波动。
提前感谢您的回复!
来自INFO
命令:
evicted_keys
:由于maxmemory
限制而收回的密钥数
要了解有关驱逐的更多信息,请参阅使用Redis作为LRU缓存-驱逐策略
此计数器在服务器启动时为零,只有在发出CONFIG RESETSTAT
命令时才会重置。但是,在ElastiCache上,此命令不可用。
也就是说,ElastiCache通过计算数据点之间的差异,从这个值中导出度量。
Redis evicted_keys 0 5 12 18 22 ....
CloudWatch Evictions 0 5 7 6 4 ....
这是CloudWatch度量中的常见模式。这允许您在需要累积值时使用SUM,但也可以轻松检测速率变化或峰值。
例如,如果在一分钟内驱逐人数超过10000人,你想发出警报。如果ElastiCache将Redis的累积值直接存储为度量,这将很难实现。
此外,通过将度量仅作为该期间的逐出密钥提交,可以保护您免受服务器重置或值溢出的数据失真。虽然RedisINFO
的值会回到零,但在ElastiCache上,您仍然可以获得该期间的值,并且您仍然可以在任何期间进行求和。