Redis 内存淘汰策略会在以下情况下被触发:
- 写操作时内存超过限制:当 Redis 内存使用量超过了设置的 maxmemory 参数所定义的限制时,写操作(例如 set、hset 等)会触发内存淘汰策略。Redis 会根据设置的淘汰策略来删除一些键值对,以释放内存空间来容纳新的数据。
- 启用 AOF 重写:如果 Redis 使用了 AOF(Append Only File)持久化方式,并且开启了 AOF 重写功能,那么在执行 AOF 重写过程中也会触发内存淘汰策略。AOF 重写是将 AOF 文件重写为一种更紧凑、更快速加载的格式,这个过程中会使用更少的内存来存储数据。
- 通过命令主动释放内存:Redis 也可以通过主动执行 MEMORY PURGE 命令来释放内存。
查看运行最大内存
可以通过命令“config get maxmemory”查询 Redis 能使用的最大内存值: 在不设置 Redis 具体的最大内存值大小时,或者设置最大内存大小为 0 时,在 64 位操作系统下不限制内存大小,在 32 位操作系统下最多使用 3GB 内存。
设置运行最大内存
设置 Redis 运行最大内存有以下两种方式。
1.通过 Redis 配置文件 redis.conf 设置内存大小:
// 设置 Redis 最大占用内存大小为 100M
maxmemory 100mb
2.通过命令行设置 Redis 最大占用内存大小:
127.0.0.1:6379> config set maxmemory 100mb
特殊说明
以上内容来自我的《Java 面试突击训练营》,这门课程是有着十几年工作经验(前 360 开发工程师),10 年面试官经验的我,花费 4 年时间打磨完成的一门视频面试课。学完训练营的课程之后,基本可以应对目前市面上绝大部分公司的面试了,并且课程配备了 9 大就业服务,帮助上千人找到 Java 工作,其中上百人拿到大厂 Offer,学员最高薪资 70W 年薪,面试课目录和 9 大服务如下:
加我微信咨询:vipStone【备注:训练营】