前言
- Redis 是基于内存的 key-value 数据库,内存的大小是有限制的
- 在生产环境中,偶尔会遇到 Redis 服务器内存不够的情况,那对于这种情况 Redis 的内存是如何回收处理的呢?如果内存满了,Redis 会怎么办呢
一、查看 Redis 内存使用
#使用 192.168.126.15:6379 连接本机上的 Redis 数据库
[root@localhost ~]# redis-cli -h 192.168.126.15 -p 6379
192.168.126.15:6379> INFO memory #查看内存使用情况
# Memory
used_memory:853728 #由 Redis 分配器分配的内存总量,包含了 redis 进程内部的开销和数据占用的内存,以字节(byte)为单位
used_memory_human:833.72K #已更直观的单位展示分配的内存总量
used_memory_rss:16302080 #向操作系统申请的内存大小,与 top 与 ps 等命令的输出一致
used_memory_rss_human:15.55M #已更直观的单位展示向操作系统申请的内存大小
used_memory_peak:853728 #redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human:833.72K #以更直观的格式返回 redis 的内存消耗峰值
used_memory_peak_perc:100.00% #使用内存达到峰值内存的百分比,即(used_memory / used_memory_peak) *100%
used_memory_overhead:841390 #Redis 为了维护数据集的内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF 重写缓冲区和主从复制的 backlog
used_memory_startup:791416 #Redis 服务器启动时消耗的内存