我目前正在测试在数据库 Redis 中插入键(在本地)。
我有超过 500 万个密钥,而我只有 4GB RAM,所以在某一时刻我达到了 RAM 容量并交换填充(并且我的电脑出现故障)...
我的问题:如何在具有Redis数据库的机器上监控内存使用情况,并以这种方式提醒不再在Redis数据库中插入一些键?
Thanks.
内存是 Redis 性能的关键资源。已用内存定义 Redis 使用其分配器(标准 libc、jemalloc 或替代分配器,例如 tcmalloc)分配的字节总数。
您可以通过运行“info memory”来收集Redis实例的所有内存利用率指标数据。
127.0.0.1:6379> info memory
Memory
used_memory:1007280
used_memory_human:983.67K
used_memory_rss:2002944
used_memory_rss_human:1.91M
used_memory_peak:1008128
used_memory_peak_human:984.50K
有时,当Redis配置没有最大内存限制时,内存使用量最终会达到系统内存,服务器将开始抛出“内存不足”错误。其他时候,Redis 配置有最大内存限制,但没有驱逐策略。这将导致服务器不逐出任何密钥,从而阻止任何写入,直到释放内存为止。此类问题的解决方案是为 Redis 配置最大内存和一些驱逐策略。在这种情况下,当内存使用量达到最大值时,服务器开始使用逐出策略逐出密钥。
内存 RSS(Resident Set Size)是操作系统分配给 Redis 的字节数。如果“memory_rss”与“memory_used”的比率大于~1.5,则表示存在内存碎片。碎片内存可以通过重新启动服务器来恢复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)