Redis内存满了怎么办……
我们可以通过一个尝试比拟各LRU算法的精确率,先往Redis内里添加必然数目的数据n,使Redis可用内存用完,再往Redis内里添加n/2的新数据,这个时辰就必要裁减掉一部门的数据,假如凭证严酷的LRU算法,应该裁减掉的是最先插手的n/2的数据。 天生如下各LRU算法的比拟图 图片来历:segmentfault.com/a/1190000017555834 你可以看到图中有三种差异颜色的点:
我们能看到Redis3.0采样数是10天生的图最靠近于严酷的LRU。而同样行使5个采样数,Redis3.0也要优于Redis2.8。 LFU算法 LFU算法是Redis4.0内里新加的一种裁减计策。它的全称是Least Frequently Used,它的焦点头脑是按照key的最近被会见的频率举办裁减,很少被会见的优先被裁减,被会见的多的则被留下来。 LFU算法能更好的暗示一个key被会见的热度。若是你行使的是LRU算法,一个key好久没有被会见到,只方才是无意被会见了一次,那么它就被以为是热门数据,不会被裁减,而有些key未来是很有也许被会见到的则被裁减了。假如行使LFU算法例不会呈现这种环境,由于行使一次并不会使一个key成为热门数据。 LFU一共有两种计策:
配置行使这两种裁减计策跟前面讲的一样,不外要留意的一点是这两周计策只能在Redis4.0及以上配置,假如在Redis4.0以下配置会报错。 题目 最后留一个小题目,也许有的人留意到了,我在文中并没有表明为什么Redis行使近似LRU算法而不行使精确的LRU算法,可以在评述区给出你的谜底,各人一路接头进修。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |