1 内存策略说明
redis服务器运行在内存中,数据也在内存中保存. 如果一直往里存,总有一天内存资源不够用,所以需要研究如何优化内存.
2 LRU算法
维度:T 时间
LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面(数据)置换算法,选择最近最久未使用的页面(数据)予以淘汰。该算法赋予每个页面(数据)一个访问字段,用来记录一个页面(数据)自上次被访问以来所经历的时间 t,当须淘汰一个页面(数据)时,选择现有页面(数据)中其 t 值最大的,即最近最少使用的页面(数据)予以淘汰。
3 LFU算法
维度:引用次数
LFU(least frequently used (LFU) page-replacement algorithm)。即最不经常使用页置换算法,要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。
4 随机算法
随机算法: 灭霸的响指
5 TTL算法
说明: 将设定了超时时间的数据提前删除.
6 Redis中内存优化策略
- volatile-lru 设定超时时间的数据采用lru算法
- allkeys-lru .所有的数据采用lru算法
- volatile-lfu 设定超时时间的数据采用LFU算法
- allkeys-lfu 所有的数据才能lfu算法
- volatile-random 设定了超时时间的数据采用随机算法
- allkeys-random 所有数据采用随机算法
- volatile-ttl 设定超时时间的数据采用TTL算法
- noeviction 该配置为模式配置 表示内存满时 只报错,不删除数据.
修改配置文件之后,重启服务器即可.