数据库
首页 > 数据库> > 【Azure Redis 缓存】当使用Azure Redis 集群服务时候,发生了Moved的几点分析

【Azure Redis 缓存】当使用Azure Redis 集群服务时候,发生了Moved的几点分析

作者:互联网

问题描述

当使用Azure Redis 集群服务时候,发生了Moved的几点分析

 

问题分析

1.   关于 Moved 问题,原因有可能是内存碎片整理,从而引起Redis发生failover。

2.   内存碎片多数情况是由于key值较大导致的,同时内存使用率较高也会影响内存碎片,从可以根据Redis的Memory指标判断(Used memory RSS比Used memory高不少),由于内存碎片会降低Redis的可用性以及Redis本身内存的不足,所以服务端会在碎片率较大的时候选择整理,该动作会导致failover,而此时客户端就会有moved的报错,原因在于切换前的master被关闭,发生failover。

 

3.  在Redis进行缩放操作(scale out) 期间,客户端也会出现Moved异常。

4.  关于timeout,可以从慢指令(slowlog)中发现执行超时的均为eval执行lua脚本时超时。执行eval通常是在事务中执行,且从堆栈上看出执行了exists命令,目的是否是为了加分布式锁呢?由于这个命令时间复杂度为O(N),所以建议使用 SCAN 代替该操作。

 

5.  当内存使用率较高的情况,可以参考以下几个:

 

标签:redis,cn,Redis,cache,Moved,azure,内存,Azure
来源: https://www.cnblogs.com/lulight/p/15982239.html