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数据满了之后,如何淘汰数据?
数据一看,这不就是我之后的生活吗,我得好好表现,
这个还得从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