缓存数据历险记(一)

redis是我们研发人员的利器,虽然它速度快,支持高并发,多种业务都会融合到缓存,但要用好它,可不是那么简单的事情。下面我们就跟随卢卡的视角来去寻找一下redis内存淘汰背后的故事。

背景

第一次提到一个内存淘汰,是因为业务中很多数据已经将缓存的速度拖的很慢,而且一致在库中的数据留存下去,额,虽然说已经没有实际意义了,但是至少证明它之前存在过,数据的心声,作为redis的管理员conf大佬, 就给他们上课了,将数据整理好,确定好标签,给他们找寻数据最后的归属

数据听了顿时留下了眼泪,踌躇满志的想要重新来过,等啊等啊。就是到了过期时间, 它还是没有被0号库的皇帝召见,看来等待它的就只能默默的离开了,当,逐渐的数据感觉自己被冷落了,皇帝也不喜欢我了,说着就开始给淘汰机制的警察诉苦,当时是他给我标注的,说好会一直待我好,现在呢,就不爱了,渣男,呸。

作为淘汰警察的内存掌控者,每天这样的事情也已经习惯了, 谁让是缓存呢,对吧,好的东西就是比较稀有,人家就是有特权选择你们这些单纯的数据,淘汰警察说的话一次次的牵动着数据的心, 看来只有哭诉,才可以让以后的生活成长起来。经历过缓存的丢弃,渣男的抛弃,数据在一次在淘汰警察的鼓励下,站了起来,我以后要跟你混。

淘汰警察耐心的告诫数据,以后的路要自己好好走,我这里可是很复杂的,你有信心去走向远方吗?

数据,直接坚定的说了一句, YES ,SIR,(话说给淘汰警察整的不会了)

那你要是有兴趣,就先留下来吧,说着,数据眼角留下了热泪,温柔的笑了起来。

迎接你新的生活吧,淘汰警察慢吞吞的说到。

数据跟淘汰警察历险记

第二天,一大早数据就被,淘汰警察喊醒了,告诉你今天第一个任务,获取最新的内存情况

也就是将你一样,被0号库皇帝管理的韭菜数据,他们要获取一下他们现在的总体情况, 你先去交接一下 memory大哥,把这个info的令牌带着, 先去找你command妹妹,告诉他要查一下 内存情况;


实例情况

缓存redis的内存情况,用命令  info memory,可以获取到;

缓存数据历险记(一)

看到最新的内存情况的,数据很是高兴, 刚要回家,就看到淘汰警察给的任务卡上还有任务, 既然有挑战,那我就要完成,数据已经决定了开始像下个任务驶入;

任务一:

缓存Redis内存如何配置,生产环境中一般配置多少?

数据一看,这个配置,只能去寻找conf大哥了, 屁颠屁颠的去找了conf大哥让他查查内存配置,正好看见数据是新手,就给他指明一条路;

缓存数据历险记(一)

如果默认没有配置redis的内存,64位操作环境下,一般不限制内存大小;

但是conf大哥,细心的告诉数据, 想要配置内存,也是有技巧的;

数据认真的听了起来

生产环境缓存内存配置:


生产环境,公司一般会配置 当前主内存的四分之三,(redis底层用hash算法,负载因子是0.75)

如何设置redis的内存:

  • 方法1:可以通过conf来设置
maxmemory <bytes>
    单位是字节:1024字节-1kb
    1048576是1MB=1024*1024
    
比如:
     maxmemory 1048576000   //代表1000MB
  • 方法2:使用命令来配置
对于命令一般存储在config中
   启动redis  , redis -cli
  config get maxmemory


config set maxmemory  104857600
缓存数据历险记(一)

任务二:

当Redis的内存满了,会发生什么情况?

数据一看这个任务,感觉要起义的感觉,内存总有一天要被我们数据占据,到时候看看鹿死谁手,

实例情况:

我将最大内存设置为1字节,

127.0.0.1:6379> config set maxmemory 1
OK
127.0.0.1:6379> set key1 hello
(error) OOM command not allowed when used memory > 'maxmemory'.
缓存数据历险记(一)
Redis内存已满

任务三:

Redis数据满了之后,如何淘汰数据?

数据一看,这不就是我之后的生活吗,我得好好表现,

这个还得从conf大哥那边找找灵感,说着就跑去找conf大哥了,

默认的Redis conf文件中,对于淘汰数据;

maxmemory-policy noeviction

不会驱逐数据的一种数据策略

如果内存够,基本都可以保存下来;


面试题:如果当前的一个键值是过期的,name他到了过期时间是否会马上在内存中被删除呢?

set k1 hello ex 10   10秒失效

答案:当一个key过期,标识不可用之后,不会立刻删除

因为会有过期键值对的策略在起作用

卢卡寄语

数据在淘汰警察的任务下,逐渐了解了内存的细节情况, 对于内存中最大数据,配置,以及过期保存都有了一定的了解,接下来会是对Redis,key值中过期策略的制定, 果然:淘汰警察说,数据你还有很远的路要走

下期会接着将关于Redis数据的过期策略的故事,期待你的关注,晚安了;


原文始发于微信公众号(卢卡多多):缓存数据历险记(一)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/23457.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!