redis缓存写满了怎么办?
缓存数据满了怎么办?
- 首先要明确, 用作缓存的数据都是设置了过期时间的, 没有过期时间那不叫缓存, 那叫持久化.
- 我们的业务量并没有那么大
如果遇到缓存满了又该怎么办呢?
加内存
这是最简单粗暴的办法, 不过成本相对较高
内存淘汰策略
redis的内存淘汰策略是指在Redis的用于缓存的内存不足时, 怎么处理需要新写入且需要申请额外空间的数据.
maxmemory参数: 设置内存的最大使用量(配置)
maxmemory-policy参数: 对应的内存淘汰规则(配置), 当内存不够用时, 会设置的内存淘汰规则
规则 规则说明
noeviction 当内存不足以容纳新写入的数据时, 新写入操作会报错
allkeys-lru 当内存不足以容纳新写入数据时, 在键空间中, 移除最近最少使用的key
allkeys-random 当内存不足以容纳新写入数据时, 在键空间中, 随机移除某个key
volatile-lru 当内存不足以容纳新写入数据时, 在设置了过期时间的键空间中, 移除最近最少使用的key
volatile-ttl 当内存不足以容纳新写入数据时, 在设置了过期时间的键空间中, 有更早过期时间的key优先移除
集群slaveof 从机替换主机, 主机下来后做相应的操作
配置多主多从
内存淘汰策略,毕竟都是缓存,缓存的意义就是为了减缓数据库的压力。
那么淘汰1.最少使用 2. 随机移除 3. 移除带过期时间的key最少使用的 4.删除最早时间的
总之就是,配置内存淘汰策略一般不会超出的。