标签:对象内存 title 随机 str 数据 角度 class 限制 vol
使用info memory 命令查看内存相关指标:
属性名 | 属性说明 |
---|---|
used_memory | redis分配器的内存总量 |
used_memory_human | 以可读的格式返回used_memory |
used_memory_rss | 操作系统角度显示redis进程占用物理内存总量 |
used_memory_peak | 内存使用的最大值,表示used_memory的峰值 |
used_memory_peak_human | 以可读形式返回used_memory_peak |
used_memory_lua | lua殷勤所消耗的内存大小 |
mem_fragmentation_ratio | used_memory_rss/used_memory 比值,表示内存碎片率 |
mem_allocator | redis所使用的内存分配器,默认jemalloc |
redis进程内消耗主要包括:自身内存+对象内存+缓冲内存+内存碎片
子进程内存消耗主要是指执行AOF/RDB重写时Redis创建的子进程内存消耗。Redis执行fork操作产生的子进程内存
Redis使用maxmemory参数限制最大可用内存,限制内存的目的主要有:
Redis的内存上限可以用过config set maxmemory进行动态修改
Redis的内存回收机制主要体现在以下两个方面 :删除到达过期时间的键对象。内存到达上限时触发内存溢出控制策略
删除过期键。 redis所有键都可以设置过期属性,redis采用惰性删除和定时任务删除
内存溢出控制策略,当Redis到达maxmemory上限是触发相应的溢出控制策略
1)noeviction:默认策略,不会删除任何数据,拒绝所有写入操作,并返回客户端错误信息,此时只相应读操作
2)volatile-lru:根据LRU算法删除设置了超时属性的键,直到腾出足够空间为止,如果没有可删除对象,退回到1)
3)allkeys-lru:根据LRU算法删除键,不管有没有过期属性,直到腾出足够空间
4)allkeys-random:随即删除所有键,直到腾出足够空间为止
5)volatile-random:随机删除过期键,直到腾出空间
6)volatile-ttl:根据键值对象ttl属性,删除最近将要过期数据,如果没有回退1)
标签:对象内存 title 随机 str 数据 角度 class 限制 vol
原文地址:https://www.cnblogs.com/DyLoder/p/11216006.html