栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis 大键值对 Big Key 懒惰删除机制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis 大键值对 Big Key 懒惰删除机制

一、懒惰删除介绍

在删除元素数量很多的集合(set/hash/list/sortedSet)时,无论是使用DEL命令删除还是redis为了释放内存空间而进行的删除,在删除这些big key的时候,会导致redis主线程阻塞。

在redis 4.0版本中,提供了lazy free(懒惰删除)的特性解决 big key 删除导致的主线程阻塞的问题。

使用lazy free删除big key时,和一个O(1)指令的耗时一样,亚毫秒级返回(返回结果不会产生等待阻塞),真正删除key的耗时动作交由后台子线程执行。

二、命令

惰性删除大集合:功能与DEL一致,当集合键的元素个数大于64个,会把真正的内存释放操作,交给单独的后台线程来操作

UNLINK biglist

惰性清理DB或全部数据

FLUSHDB ASYNC  
FLUSHALL ASYNC

三、配置

lazyfree-lazy-eviction yes/no

当redis使用内存达到maxmemory,并且设置淘汰策略时,决定淘汰过期键值对时是否使用惰性删除机制

注:该场景开启可能导致redis内存释放不及时

lazyfree-lazy-expire yes/no

设置有过期时间的key达到过期后,被redis清理删除时是否采用惰性删除机制,建议开启

lazyfree-lazy-server-del yes/no

有些命令在处理已存在的键时,会带有一个隐式的DEL键的操作。如RENAME命令,当目标键已存在,redis会先删除目标键,

如果是big key,也会产生阻塞问题,这时通过开启惰性删除机制也可以进行异步清理,建议开启

slave-lazy-flush yes/no

当进行slave进行全量数据同步,slave在加载master的RDB文件前,会运行FLUSHALL来清理自己的数据。

参数设置决定是否采用lazy free flush机制。如果内存变动不大,建议可开启。可减少全量同步耗时,从而减少主库因输出缓冲区爆涨引起的内存使用增长。
 

参考:

redis过期key的删除策略_自由de单车的博客-CSDN博客_redis 过期key清理策略

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/837416.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号