Redis——最大内存设置maxmemory
启动时设置
单节点启动 docker run -d --name redis6379 \ -p 6379:6379 \ -v /root/data/soft/redis/redis6379:/data \ -m 1G --memory-swap 1G \ redis:6.2.3 \ --maxmemory 100m 集群节点部署 docker run -d --name redisnode1 \ --net host \ -v /root/data/soft/redis/redisnode1:/data \ -m 1G --memory-swap 1G \ redis:6.2.3 \ --port 6301 \ --cluster-enabled yes \ --cluster-config-file cluster.conf \ --maxmemory 800m
运行时修改
docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 info | grep memory docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 config get maxmemory docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 config set maxmemory 800m
设置了maxmemory的选项,redis内存使用达到上限。可以通过设置LRU算法来删除部分key,释放空间。默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。
如果不设置maxmemory或者设置为0,64位系统不限制内存,32位系统最多使用3GB内存。
LRU是Least Recently Used 近期最少使用算法。
- volatile-lru -> 根据LRU算法生成的过期时间来删除。
- allkeys-lru -> 根据LRU算法删除任何key。
- volatile-random -> 根据过期设置来随机删除key。
- allkeys->random -> 无差别随机删。
- volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
- noeviction -> 谁也不删,直接在写操作时返回错误。
如果设置了maxmemory,一般都要设置过期策略。打开Redis的配置文件有如下描述,Redis有六种过期策略
redis.conf中的maxmemory定义REdis可用最大物理内存,有多种书写方式,以下均为合法:
maxmemory 1048576
maxmemory 1048576B
maxmemory 1000KB
maxmemory 100MB
maxmemory 1GB
maxmemory 1000K
maxmemory 100M
maxmemory 1G
没有带单位尾巴的为字节数,以B结尾的表示相应的大小。但需要注意KB和K、MB和M、GB和G是不同的,如1K表示1000字节,而1KB则为1024字节。如果maxmemory值为0,表示不做限制。
查看当前redis节点内存状态
[root@bogon mongo]# docker exec -it redisnode1 redis-cli -h 192.168.1.20 -p 6301 info | grep memory used_memory:1797944 used_memory_human:1.71M used_memory_rss:5668864 used_memory_rss_human:5.41M used_memory_peak:1816760 used_memory_peak_human:1.73M used_memory_peak_perc:98.96% used_memory_overhead:1493440 used_memory_startup:1468256 used_memory_dataset:304504 used_memory_dataset_perc:92.36% total_system_memory:3953971200 total_system_memory_human:3.68G used_memory_lua:37888 used_memory_lua_human:37.00K used_memory_scripts:0 used_memory_scripts_human:0B maxmemory:838860800 maxmemory_human:800.00M maxmemory_policy:noeviction
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了