首页 > 编程知识 正文

redis实现分布式锁最好方案,redis有哪些数据淘汰策略

时间:2023-05-05 19:41:12 阅读:14712 作者:2852

redis过期和处置策略1 .过期策略2 .处置策略3 .在哪里配置? 4.Lazy Free

1 .过期政策

1 .所有1.redis密钥都可以通过expire命令设置过期日期。 所有设置了过期日期的密钥都存储在一个独立的词典中。 删除这些key有两种不同的策略。

1 )定时删除。 redis默认每秒进行10次过期扫描,每次从词典中检索20个key,删除这20个key中过期的key。 如果删除数大于1/4,则继续取出20个密钥,继续删除20个密钥中过期的密钥。 与此相同,为了避免无限循环扫描,redis规定每次都过期

2 )惯性删除。 客户端连接到redis服务器时,去检查key的过期时间。 如果此密钥过期,则删除此密钥

注意:对于主从体系结构,从机没有过期扫描。 过期扫描仅在主机上显示,并在主机中的密钥过期后与从机同步

2 .处置策略1 .概念:当redis用于缓存的内存已满时,将数据写入redis,redis如何处理

2 .八大战略

1 )全局密钥时

1.1无视频。 这是redis的默认策略,它停止写入,并允许读取和删除

1.2 allkeys-lru,废除最近不再使用的key

1.3所有密钥- lfu,取消不经常使用的密钥

1.4所有关键点- random,随机淘汰关键点

2 )对于设定了有效期限的键

2.1 volatitle-lru取消了所有过期密钥中最近很少使用的密钥

2.2 volatitle-ttl,丢弃所有设置了过期日期的密钥中ttl值小的密钥,ttl值表示设置了过期日期的大小

2.3 volatitle-lfu丢弃所有设置了过期日期的密钥中不经常使用的密钥

2.4卷随机丢弃所有已过期的密钥中的密钥

3 .部署在哪里? 在redis.conf中有这样的参数maxmemory-policy

4.Lazy Free 1.懒惰删除。 为什么需要懒惰的删除呢? 在redis时,如果删除单线程程序中密钥较大的程序,则会很容易产生纸箱。 懒惰删除也称为异步删除

2.unlink key,此命令相当于懒惰地删除key,redis4.0并提供

3.flushall async/flushdb async也可以懒惰删除所有密钥

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。