Redis存储模型
在Redis中,每一个Key对应一块内存空间,删除即是回收key对应的内存空间。
同时在存储空间中还会存储每个数据的过期时间。
删除策略
定时删除
创建一个定时器,当key有过期时间,且到达过期时间时,删除key。
优点
节约内存。
缺点
CPU压力大。
惰性删除
数据到达过期时间,不做处理,当下次访问时,如果过期则删除,不过期返回数据。
优点
节约CPU压力。
缺点
空间占用大。
定期删除
每秒钟,按照server.hz的设置,进行定期随机的抽检,并删除过期的key。
在redis中,一般采用惰性删除和定期删除。
逐出算法
当数据库内存不足时,选择删除一些未过期的数据,以存入新的数据。
逐出策略
- 检测易失数据
- 选择最长时间未被使用的数据
- 选择最近使用次数最少的数据
- 选择即将过期的数据
- 任意选择数据
- 全库检测
- 选择最长时间未被使用的数据
- 选择最近使用次数最少的数据
- 任意选择数据
- 放弃数据驱逐
数据库配置
maxmemory-policy volatie-lru