我们平均每秒钟要过期1000个密钥,同时拍摄快照时,我们偶然发现转储的大小比主快照要小,因为快照不包括过期密钥的内存。由于过期密钥在我们的平台上拥有大量内存,因此有什么方法可以使redis定期释放为过期密钥保留的内存。 (我们使用的是2.8.21引擎)或最新的Redis引擎版本将无法有效解决此问题。如果stackoverflow不适合我的问题,请引导我进入正确的平台。
回收内存指南:https://docs.redislabs.com/latest/ri/memory-optimizations/reclaim-expired-keys-memory-faster/(但需要提出建议,如文档中所述,升级会有所帮助还是进行扫描会很好)
过期的密钥已从内存中删除:
SCAN
会为您提供帮助的方式,它将强制对所有键空间进行被动删除。 升级可能会有所帮助,因为有新的功能/配置设置,例如activedefrag
。
请参阅Redis filling up memory fast, running --bigkeys free it up了解包括驱逐政策和有效到期频率的解决方案。