加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Redis内存满了怎么办……

发布时间:2019-10-14 11:01:29 所属栏目:编程 来源:佚名
导读:我们知道Redis是基于内存的key-value数据库,由于体系的内存巨细有限,以是我们在行使Redis的时辰可以设置Redis能行使的最大的内存大

我们可以通过一个尝试比拟各LRU算法的精确率,先往Redis内里添加必然数目的数据n,使Redis可用内存用完,再往Redis内里添加n/2的新数据,这个时辰就必要裁减掉一部门的数据,假如凭证严酷的LRU算法,应该裁减掉的是最先插手的n/2的数据。

天生如下各LRU算法的比拟图

Redis内存满了怎么办……

图片来历: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一共有两种计策:

  •  volatile-lfu:在配置了逾期时刻的key中行使LFU算法裁减key
  •  allkeys-lfu:在全部的key中行使LFU算法裁减数据

配置行使这两种裁减计策跟前面讲的一样,不外要留意的一点是这两周计策只能在Redis4.0及以上配置,假如在Redis4.0以下配置会报错。

题目

最后留一个小题目,也许有的人留意到了,我在文中并没有表明为什么Redis行使近似LRU算法而不行使精确的LRU算法,可以在评述区给出你的谜底,各人一路接头进修。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读