zoukankan      html  css  js  c++  java
  • 解决redis运行期间key值过期但是内存memory依然占用过高

    要解决这个问题,首先要了解redis info信息中几个数据的意义:

     
    used_memory:810575104 //数据占用了多少内存(字节) 
    used_memory_human:773.02M //数据占用了多少内存(带单位的,可读性好) 
    used_memory_rss:885465088  //redis占用了多少内存 
    used_memory_rss_human:844.45M //redis占用了多少内存(带单位的,可读性好)  
    used_memory_peak:2001274696 //占用内存的峰值(字节) 
    used_memory_peak_human:1.86G //占用内存的峰值(带单位的,可读性好) 
    mem_fragmentation_ratio:1.09   //内存碎片率
     
    里面需要注意的有:
     
    used_memory_human,代表redis数据数据占用内存的大小,

    used_memory_rss_human,代表服务器时下为redis分配的内存大小,也就是redis具体占用内存的大小
     
    used_memory_peak_human,代表redis在使用期间最高占用了多少内存。
     
    mem_fragmentation_ratio = used_memory_rss / used_memory
     
    mem_fragmentation_ratio,越低越高,趋向于1,大于1的部分redis碎片占用的大小。范围在1 - 1.5,大于1.5说明碎片过多,必须要清理了。
     
    redis的碎片清理:
     
    redis4.0以前内存碎片过多的情况下只能关闭redis重启后才能生效。
     
    redis4.0以后新增了配置项:activedefrag
     
    redis的配置项activedefrag默认为no,未开启,不会自动回收内存清理碎片,
     
    当需要清理碎片的时候,使用命令 
     
    config set activedefrag yes
     
    将activedefrag的配置设置为开启状态。则redis会自动清理碎片,回收内存。
  • 相关阅读:
    剑指offer39-平衡二叉树
    剑指offer37-数字在排序数组中出现的次数
    剑指offer36-两个链表的第一个公共结点
    剑指offer31-整数中1出现的次数
    剑指offer30-连续子数组的最大和
    剑指offer28-数组中出现次数超过一半的数字
    剑指offer26-二叉搜索树与双向链表
    剑指offer21-栈的压入、弹出序列
    剑指offer16-合并两个排序的链表
    C#-杂碎
  • 原文地址:https://www.cnblogs.com/xzlive/p/11757960.html
Copyright © 2011-2022 走看看