码迷,mamicode.com
首页 > 其他好文 > 详细

Redis注意事项

时间:2019-03-12 21:20:32      阅读:467      评论:0      收藏:0      [点我收藏+]

标签:虚拟内存   随机   报错   主机   aof   时间   说明   volatil   cti   

1、Redis3.0没有虚拟内存概念,已从2.4就移除;

2、redis挂掉并重启时,如果有主从备份的,主机挂掉重启时先关掉主从备份,不然从机的数据会被冲洗掉;数据恢复时如果有aof和rdb的,则从aof恢复;若只有rdb的,只从rdb恢复;

3、保存快照需要注意频率,好像没有指明什么方式save,是save还是bgsave;

4、redis指明使用多少内存比较好?

5、删除策略:

(1)定期删除+惰性删除

定期删除,redis默认每100ms检查是否有过期的key,有过期的key则删除。需要说明的是redis不是每个100ms将所有的key检查一次,而是随机抽取进行检查(如果每100ms,全部key进行检查,redis岂不是卡死了)。因此,如果只采用定期策略,会导致很多key到时间没有删除,也就是使用定期删除会导致删除不完全,于是惰性删除就登场了。就是说你在获取key的时候,redis会检查一下,这个key如果设置过期时间那么是否过期了?如果过期,此时就删除。

(2)内存淘汰机制

在redis.conf中有一行配置,用于配内存淘汰策略的

maxmemory-policy volatile-lru

1)noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。应该没人用吧。
2)allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。推荐使用,目前项目在用这种。
3)allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。应该也没人用吧,你不删最少使用Key,去随机删。
4)volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。这种情况一般是把redis既当缓存,又做持久化存储的时候才用。不推荐
5)volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。依然不推荐
6)volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除。不推荐
ps:如果没有设置 expire 的 key,不满足先决条件(prerequisites);那么 volatile-lru, volatile-random 和 volatile-ttl 策略的行为,和 noeviction(不删除) 基本上一致。

Redis注意事项

标签:虚拟内存   随机   报错   主机   aof   时间   说明   volatil   cti   

原文地址:https://www.cnblogs.com/linguoguo/p/5430476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!