redis遇到问题:
1、主从不同步(如:主库已过期,从库数据还存在,解决方式:判断ttl,若ttl>0,直接取redis;若是ttl<=0,则重新生成)
2、当前已用内存超过maxmemory限定时,触发主动清理策略
3、Redis过期键删除策略(遇到过冷数据没有删除的情况,执行get命令后删除了)
(1)被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
(2)主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key
(3)当前已用内存超过maxmemory限定时,触发主动清理策略
4、主从切换的过程:(主1切到从3)
3直接提为主,然后3做落地,通过网络传输到1、2上,传输完毕之前,1、2的数据不会变,也可读,之后load数据,
load数据之前,会把1,2上做一次类似于flushall的操作,把数据全部清掉,然后慢慢load数据
14G的数据,估计要load1分钟左右
load期间,load多少内容,就有多少内容可读取
5、亚马逊redis,老版本安全剩余容量是50%,新版本安全剩余容量可以是30%;
实际测试OPS最高在6~7万。
6、设置redis超时20s(不设置超时,会存在一些无用连接)
1、主从不同步(如:主库已过期,从库数据还存在,解决方式:判断ttl,若ttl>0,直接取redis;若是ttl<=0,则重新生成)
2、当前已用内存超过maxmemory限定时,触发主动清理策略
3、Redis过期键删除策略(遇到过冷数据没有删除的情况,执行get命令后删除了)
(1)被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
(2)主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key
(3)当前已用内存超过maxmemory限定时,触发主动清理策略
4、主从切换的过程:(主1切到从3)
3直接提为主,然后3做落地,通过网络传输到1、2上,传输完毕之前,1、2的数据不会变,也可读,之后load数据,
load数据之前,会把1,2上做一次类似于flushall的操作,把数据全部清掉,然后慢慢load数据
14G的数据,估计要load1分钟左右
load期间,load多少内容,就有多少内容可读取
5、亚马逊redis,老版本安全剩余容量是50%,新版本安全剩余容量可以是30%;
实际测试OPS最高在6~7万。
6、设置redis超时20s(不设置超时,会存在一些无用连接)
config set timeout 20
7、Redis RDB持久化进行fork时最坏会占用双倍内存,内存不足就会动用交换分区,系统性能急剧下降,所以若是设置了RDB持久化,内存容量剩余50%是最安全的;若并发请求量不高,影响不是太大;若请求量比较大,可能会出现大量could not get pool。若是Redis中的数据都落地到MySQL,可以去掉RDB快照。