Redis内存管理
1.查询redis内存相关的信息
登录redis的客户端,查看当前redis服务器的内存使用情况:
使用info memory 命令:
关键词解释
used_memory:已经使用了的内存大小,包括redis进程内部开销和你的cache的数据所占用的内存,单位byte。
used_memory_human:以可读格式返回的used_memory。
used_memory_rss:从操作系统角度显示的redis占用的物理内存。
used_memory_rss_human:以可读格式返回的used_memory。
used_memory_peak:内存的最大使用值,表示used_memory的峰值。
used_memory_peak_human:
used_memory_memory_lua: Lua引擎所消耗的内存大小
mem_fragmentation_ratio: used_memory_rss/used_memory的比值,表示内存碎片率
used_allocator:Redis所使用的内存分配器
其中,我们需要重点关注的指标有:used_memory_rss和used_memory以及它们的比值mem_fragmentation_ratio
特别是mem_fragmentation_ratio:
当mem_fragmentation_ratio > 1时,说明有很多内存碎片,即被使用了但是没有实际用于存储数据的内存。对于一个存有大量数据的redis服务器,该值起码需要在1.5以下才算正常,否则需要思考一下如何做内存优化。
当mem_fragmentation_ratio < 1时,说明redis使用了虚拟内存,即redis把内存的数据交换到了硬盘上,这种情况要格外关注。因为硬盘的读写速度要远远慢于内存