我相信很多没有经验的人对于如何解析redis内存信息都无能为力。因此,本文总结了出现问题的原因和解决方法,希望大家可以通过这篇文章来解决这个问题。
used _ memory:Redis分配器分配的内存总量,包括Redis进程的内部开销和数据占用的内存,以字节为单位。
Used_memory_rss:从操作系统请求的内存大小。与top和ps等命令的输出一致。
used _ memory _ peak:redis的内存消耗峰值(字节)。
已用内存峰值perc:已用内存达到峰值内存的百分比,即(已用内存/已用内存峰值)* 100%。
used _ memory _ overhead:redis维护数据集内部机制所需的内存开销,包括所有客户端输出缓冲区、查询缓冲区、AOF重写缓冲区和积压的主从复制。
used _ memory _ startup:redis服务器启动时消耗的内存。
Used_memory_dataset:数据占用的内存大小,即used _ memory-sed _ memory _ overhead。
Used_memory_dataset_perc:数据占用的内存大小百分比,100% *(used _ memory _ dataset/(used _ memory-used _ memory _ startup))。
Total_system_memory:整个系统内存。
used _ memory _ Lua:Lua脚本存储占用的内存。
max memory:redis实例的最大内存配置。
Maxmemory_policy:达到Maxmemory时的消除策略。
mem _ fragment _ ratio:碎片率,已用内存rss/已用内存。
Mem _分配器:内存分配器。
Active_defrag_running:表示没有活动的碎片整理任务正在运行,1表示活动的碎片整理任务正在运行(defrag:表示内存碎片整理)。
Lazyfree _ pending _ objects: 0表示没有用于延迟发布的挂起对象。
00-1010如果Redis的使用率超过设定的最大值会发生什么?让我们更改上述配置,并特意将最大值设置为1字节。
# output buffers(butthisnotneddiffepolicis ' no viction ')。
#
#maxmemorybytes
Maxmemory1在调试模式下打开页面并提示错误:使用内存“Maxmemory”时不允许oom命令。
设置了Maxmemory选项,redis内存使用达到上限。您可以设置LRU算法来删除一些键并释放空间。默认情况下,它基于到期时间。如果在设置期间未添加到期时间,数据将被maxmemory填充。
如果maxmemory未设置或设置为0,64位系统将不会限制内存,而32位系统将使用高达3GB的内存。
LRU是最近最少使用的算法。
Volatile-lru-Delete根据lru算法生成的到期时间。
根据lru算法删除任何键。
volatile-random-根据过期设置随机删除密钥。
all keys-随机-无差别随机删除。
volatile-ttl-根据最新到期时间删除(以TTL为补充)。
no viction-没有人删除它,写的时候直接返回错误。
如果设置了maxmemory,通常会设置过期策略。打开Redis的配置文件描述如下,Redis有六个过期策略:
# volatile-LRU-remove keywithexperiesetusinganlru算法
# all keys-LRU-removeanykeyaccordinglythelrualgorithm
# volatile-random-removearandomkey with nexperieset
# all keys-random-removearandomkey,anykey
# volatile-TTL-remove keytheenearestypetime(Minorttl)
# no action-不要texpireatall,只是justreturnanerronwriteoperations然后打开配置文件,添加下面一行,并使用volatile-lru的过期策略:
Max-policy volatile-LRU保存文件并退出,重新启动redis服务。
看完以上内容,你掌握了如何分析redis内存信息的方法了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道。感谢阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/55814.html