info memory
:查看redis内存情况
重点看 :
used_memory:Redis使用的内存总量,它包含了实际缓存占用的内存(包含虚拟内存)和Redis自身运行所占用的内存(如元数据、lua)。它是由Redis使用内存分配器分配的内存,所以这个数据并没有把内存碎片的内存给统计进去。
used_memory_rss:
从操作系统角度看redis进程占用的内存量。包括进程运行本身需要的内存、内存碎片等,但是不包括虚拟内存。
mem_fragmentation_ratio:mem_fragmentation_ratio值越大,used_memory_rss就越大,内存碎片就越大。mem_fragmentation_ratio小于1时,代表使用了过多的虚拟内存,由于虚拟内存的媒介是磁盘,比内存速度要慢很多,当这种情况出现时,应该及时排查,如果内存不足应该及时处理,如增加Redis节点、增加Redis服务器的内存、优化应用等。
redis内存(记住):
1.自身内存
2.对象内存 :对象内存是 Redis 内存中占用最大一块,存储着所有的用户的数据。Redis 所有的数据都采用的是 key-value 型数据类型
3.缓冲内存:
a.客户端缓冲:指的是所有接入到 Redis 服务器 TCP 连接的输入输出缓冲。输入缓冲无法控制,最大为1G;输出缓冲通过 client-output-buffer-limit 参数进行控制
b.复制积压缓冲:2.8版本之后提供的可重用的固定大小缓冲区用于实现部分复制功能,默认1MB,可通过 repl-backlog-size 参数进行控制,主要是在主从同步时用到
c.AOF缓冲区:AOF 持久化用的,会先写入到缓冲区
4.内存碎片