数据库-Redis(10)

本文介绍了Redis的内存淘汰算法,包括noeviction、volatile和allkeys策略,以及LRU和LFU的具体实现。当Redis内存用完时,可以通过设置淘汰机制避免写命令错误。内存优化建议包括缩减键值对大小、利用共享对象池、字符串优化和编码优化等。另外,还讲解了Redis key的过期时间设置和持久化方法,以及管道(pipelining)的作用,提高命令处理效率。
摘要由CSDN通过智能技术生成

目录

46.Redis内存淘汰算法有哪些?

47.Redis内存用完了会发生什么?

48.Redis如何做内存优化?

49.Redis key的过期时间和永久有效分别怎么设置?

50.redis中的管道有什么用?


46.Redis内存淘汰算法有哪些?

Redis供支持八种淘汰策略,分别是noeviction,volatile-random,volatile-ttl,volatile-lru,volatile-lfu,allkeys-lru,allkeys-random和allkeys-lfu策略。

怎么理解呢?主要看分三类看:

不淘汰

noeviction(v4.0后默认的)

对设置了过期时间的数据中进行淘汰

随机:volatile-random

ttl:volatile-ttl

lru:volatile-lru

lfu:volatile-lfu

全部数据进行淘汰:

随机:allkeys-random

lru:allkeys-lru

lfu:allkeys-lfu

LRU算法:

LRU算法的全称是Least Recently Used,按照最近最少使用的原则来筛选数据。这种模式下会使用LRU算法筛选设置了过期时间的键值对。

Redis优化的LRU算法实现:

Redis会记录每个数据的最近一次被访问的时间戳。在Redis在决定淘汰的数据时,第一次会随机选出N个数据,把他们作为一个候选集合。接下来,Redis会比较这N个数据的lru字段,把lru字段值最小的数据从缓存中淘汰出去。通过随机读取待删除集合,可以让Redis不用维护一个巨大的链表,也不用操作链表,进而提升性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值