详解Redis内存管理机制和实现.docx

上传人:b****5 文档编号:7506363 上传时间:2023-01-24 格式:DOCX 页数:3 大小:78.33KB
下载 相关 举报
详解Redis内存管理机制和实现.docx_第1页
第1页 / 共3页
详解Redis内存管理机制和实现.docx_第2页
第2页 / 共3页
详解Redis内存管理机制和实现.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

详解Redis内存管理机制和实现.docx

《详解Redis内存管理机制和实现.docx》由会员分享,可在线阅读,更多相关《详解Redis内存管理机制和实现.docx(3页珍藏版)》请在冰豆网上搜索。

详解Redis内存管理机制和实现.docx

详解Redis内存管理机制和实现

  

 

  

详解Redis内存管理机制和实现

 

  

 

 

 

 

 

 

 

   

 

 

 

 

 

来源关注程序员历小冰,

作者历小冰

Redis是一个基于内存的键值数据库,其内存管理是非常重要的。

本文内存管理的内容包括:

过期键的懒性删除和过期删除以及内存溢出控制策略。

最大内存限制

Redis使用maxmemory参数限制最大可用内存,默认值为0,表示无限制。

限制内存的目的主要有:

用于缓存场景,当超出内存上限maxmemory时使用LRU等删除策略释放空间。

防止所用内存超过服务器物理内存。

因为Redis默认情况下是会尽可能多使用服务器的内存,可能会出现服务器内存不足,导致Redis进程被杀死。

maxmemory限制的是Redis实际使用的内存量,也就是used_memory统计项对应的内存。

由于内存碎片率的存在,实际消耗的内存可能会比maxmemory设置的更大,实际使用时要小心这部分内存溢出。

具体Redis内存监控的内容请查看一文了解Redis内存监控和内存消耗。

Redis默认无限使用服务器内存,为防止极端情况下导致系统内存耗尽,建议所有的Redis进程都要配置maxmemory。

在保证物理内存可用的情况下,系统中所有Redis实例可以调整maxmemory参数来达到自由伸缩内存的目的。

内存回收策略

Redis回收内存大致有两个机制:

一是删除到达过期时间的键值对象;二是当内存达到maxmemory时触发内存移除控制策略,强制删除选择出来的键值对象。

删除过期键对象

Redis所有的键都可以设置过期属性,内部保存在过期表中,键值表和过期表的结果如下图所示。

当Redis保存大量的键,对每个键都进行精准的过期删除可能会导致消耗大量的CPU,会阻塞Redis的主线程,拖累Redis的性能,因此Redis采用惰性删除和定时任务删除机制实现过期键的内存回收。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1