lazy-free机制
2021-04-11 19:49:55 0 举报
AI智能生成
redis的lazy-free机制
作者其他创作
大纲/内容
起源
Redis4.0新特性,解决big key的删除性能问题
没有该机制之前,删除一个big key的时候,会阻塞主线程,不能响应其它请求,性能低,集群模式下还会导致故障切换
定义
延迟释放,当删除key的时候,异步延时释放内存,由bio(backgroud I/O)子线程处理,而不会阻塞主线程
使用
主动删除
UNLINK KEY
删除key前会判断删除的cost,如果大于某个阈值(64)才会lazy-free,否则同DEL KEY
key包含100个元素的list,那么cost=100,则异步释放,如果个数是10,那么同del
512M的key String,cost=1,也是同步阻塞释放,性能差
FLUSHALL
同步阻塞
FLUSHDB ASYNC
异步非阻塞
被动删除
redis.conf里lazy-free相关配置,默认都是no
lazyfree-lazy-eviction
表示达到内存上线,执行淘汰策略删除key时候是否lazy-free
开启lazy free, 可能使用淘汰键的内存释放不及时,导致redis内存超用,超过maxmemory的限制
lazyfree-lazy-expire
针对设置有TTL的键,达到过期后,被redis清理删除时是否采用lazy free机制
lazyfree-lazy-server-del
针对有些指令在处理已存在的键时,会带有一个隐式的DEL键的操作。如rename命令,当目标键已存在
,redis会先删除目标键,如果这些目标键是一个big key,那就会引入阻塞删除的性能问题。 此参数设置就
是解决这类问题,建议可开启
,redis会先删除目标键,如果这些目标键是一个big key,那就会引入阻塞删除的性能问题。 此参数设置就
是解决这类问题,建议可开启
slave-lazy-flush
slave加载master的rdb文件前,清空内存是否flushdb async
0 条评论
下一页