Redis默认最大内存处理原理
发布日期:2021-06-30 21:31:27
浏览次数:2
分类:技术文章
本文共 854 字,大约阅读时间需要 2 分钟。
前言
最近研究redis配置时,看到很reids.conf配置文件中maxmemory默认是注释的,就好(闲)奇的查看了一下默认内存的设置。
源码
- 查看github源码:
- 搜索“maxmemory”关键字查到server.c文件(一看就是启动文件)。
/* 检测到当前系统为32位,因为32最大内存为4G,在没有设置maxmemory的时候, * 这里默认将最大内存设置为3G,并且使用noeviction淘汰策略, * 所以不设置maxmemory时,设置maxmemory_policy也是会被覆盖的 */ if (server.arch_bits == 32 && server.maxmemory == 0) { serverLog(LL_WARNING,"Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now."); server.maxmemory = 3072LL*(1024*1024); /* 3 GB */ server.maxmemory_policy = MAXMEMORY_NO_EVICTION; }
- 当系统不是32位时,maxmemory就是为0,redis不会对可用内存进行能判断,直到程序因无可用内存异常崩溃。
/*比如这里,执行命令时判断可用内存,如果maxmemory为0就不进行可用内存判断。*/if (totwritten > NET_MAX_WRITES_PER_EVENT && (server.maxmemory == 0 || zmalloc_used_memory() < server.maxmemory) && !(c->flags & CLIENT_SLAVE)) break;
转载地址:https://lizz6.blog.csdn.net/article/details/109493998 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月20日 14时07分45秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
设置Golang的开发环境
2019-04-30
对HTTP/2的部分理解
2019-04-30
Golang 逃逸分析
2019-04-30
golang实现大数据量文件的排序
2019-04-30
golang中的time包
2019-04-30
golang fmt包中的占位符
2019-04-30
Docker下使用Redis
2019-04-30
Redis的主从和集群设置
2019-04-30
对Redis Cluster的理解
2019-04-30
清华师哥丢了个在Github下载量50万+的项目给我,让(附源码下载地址)
2019-04-30
The MASM32 SDK version 10 发布了!
2019-04-30
发布软件:TreeInfo(分层信息管理器)
2019-04-30
c++二分图的最大匹配
2019-04-30
c++点的距离
2019-04-30
c++实现彩色炫酷(?)画面
2019-04-30
c++马拦过河卒
2019-04-30
2019NOIP D4题 加工领奖
2019-04-30
1997年世界黑客大赛获奖作品
2019-04-30
论DEV-C++怎样才能做窗口
2019-04-30