redis - 淘汰机制
最大使用内存
redis虽然快,但是内存成本还是比较高的,不可能像磁盘那样子拥有比较大的的容量。如果内存使用过大,系统的保护机制会讲大内存使用的进程给OOM掉,因此,我们会限制redis的最大使用内存,设置maxmemory参数,如果超过这个最大使用内存,redis就会根据淘汰策略,处理key。
淘汰策略
- noeviction:默认策略,不淘汰,如果内存已满,添加数据是报错。
- allkeys-lru:在所有键中,选取最近最少使用的数据抛弃。
- volatile-lru:在设置了过期时间的所有键中,选取最近最少使用的数据抛弃。
- allkeys-random: 在所有键中,随机抛弃。
- volatile-random: 在设置了过期时间的所有键,随机抛弃。
- volatile-ttl:在设置了过期时间的所有键,抛弃存活时间最短的数据。
设置最大内存和淘汰策略
config set maxmemroy 1073741824 config set maxmemory-policy allkeys-lru config rewrite
配置文件里面设置
maxmemroy 1gb maxmemory-policy allkeys-lru
redis5的默认策略是不淘汰,直接返回报错。
(error) OOM command not allowed when used memory > 'maxmemory'.
总结
在使用redis的时候要预估好使用量,最好有一定的预留,防止突然的高并发数据,设置好maxmemory,才能生效淘汰策略。maxmemroy可以通过config set 进行动态设置,记得config rewrite保存好修改的配置。
相关推荐
王道革 2020-11-25
wangdonghello 2020-11-03
Langeldep 2020-11-16
chenhualong0 2020-11-16
聚合室 2020-11-16
koushr 2020-11-12
MRFENGG 2020-11-11
guoyanga 2020-11-10
fackyou00 2020-11-10
Orangesss 2020-11-03
dongCSDN 2020-10-31
rainandtear 2020-10-30
Quietboy 2020-10-30
liuyulong 2020-10-29
fansili 2020-10-29
温攀峰 2020-10-23
jackbon 2020-10-19
kaixinfelix 2020-10-04