文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Redis内存

2020-05-17 03:51

关注

Redis内存

Redis内存消耗:自身内存 + 对象内存 + 缓冲内存 + 内存碎片

  1. 自身内存:Redis进程自身内存占用量很小,大约在3.8M左右。
  2. 对象内存:sizeof(keys) + sizeof(values),键和值的内存都需要关注
  3. 缓冲内存:主要包括客户端缓冲、复制积压缓冲区、AOF缓冲区
    • 客户端缓冲:指所有接入到Redis服务器TCP连接的输入输出缓冲,超过1G会自动断开
    • 复制积压缓冲区:用于实现部分复制功能补救措施的缓冲区
    • AOF缓冲区:Redis重写期间保存最近的写入命令,消耗内存取决于AOF重写时间及写入命令量
  4. 内存碎片:Redis默认使用jemalloc分配器、可选glibc、tcmalloc,为了更好的管理和复用内存,一般采用内存块进行分配,通常采用数据对齐或安全重启处理内存碎片超标情况

子进程内存消耗:子进程fork后与父进程享有同一物理内存,AOF/RDB期间父进程处理写请求时会复制出请求的页副本进行写操作,子进程依然读取父进程快照

  1. Redis fork期间产生的子进程需要消耗的内存由持久化期间写入命令量决定
  2. 设置sysctl vm.overcommit_memory = 1允许内存分配所有的物理内存
  3. 排查当前系统是否支持THP,防止copy-on-write期间内存过度消耗

内存管理:Redis通过控制内存上限和回收策略实现内存管理。

  1. 设置内存上限:Redis使用maxmemory参数限制最大可用内存
    • 用于缓存场景,超出上限maxmemory后使用LRU等删除策略释放空间
    • 防止所有内存超过服务器物理内存,需要注意由于内存碎片的存在,实际消耗会比maxmemory更大
  2. 动态调整内存上限
    • 当Redis实例设置maxmemory不合理时,可以通过config set maxmemory进行修改
  3. 内存回收策略
    • 删除到达过期时间的键对象:惰性删除(读取到超时的键就删除,减少TTL的消耗)和定时任务删除(每秒执行十次,根据键的过期比例使用快慢两种方式回收键)
    • 内存溢出控制策略(maxmemory-policy):noeviction(不删除,拒绝写入)、volatile-lru(LRU删除设置了超时时间的属性)、allkeys-lru(LRU删除不管超时)、allkeys-random(随机删除所有键)、volatile-random(随机删除过期键)、volatile-ttl(根据对象的ttl属性删除即将过期的数据)
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯