Redis的过期数据会被立马删除吗?

Redis的过期数据会被立马删除吗?,第1张

答:不会被立马删除。Redis有两种删除过期数据的策略

惰性删除:

定期删除:

问:如果过期的数据太多,定期删除无法删除完全(每次删除完过期的key还是超过25%,同时这些key也再也不会被客户端请求,也就是无法走惰性删除,会怎么样?会不会导致Redis内存耗尽,怎么破?

答:走Redis内存淘汰机制。

Redis *** 作是基于内存的,大小有限。当内存不足或占用过高时,需要自动放弃一些未到期的数据

Redis 默认 的生效的配置为 noeviction ,需要根据不同的业务选择不同的淘汰策略

volatile-lru:在设置过期时间的数据集合里淘汰最近访问最少的数据

allkeys-lru:所有数据集合中淘汰最近访问最少的数据

volatile-lfu:在设置过期时间的数据集合里淘汰访问频率最低的数据

allkeys-lfu:所有数据集合中淘汰访问频率最低的数据

volatile-random:在设置过期时间的数据集合里,随机淘汰

allkeys-random:在所有的数据集合随机淘汰

volatile-ttl:在设置过期时间的数据集合里,淘汰剩余存活时间 (TTL) 最少的数据

noevictionl:当内存不足以写入新数据时,拒绝新数据写入。Redis 默认策略

我这里越久的数据价值越低,不在乎调用次数。所以选择

volatile-ttl

找到配置 maxmemory-policy 默认被注释 生效策略 noevictionl

保存

重启redis 生效


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10037225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存