redis集群负载均衡失效

集群配置

  1. 公司内部使用cache-client (搜狐开源缓存 https://github.com/sohutv/cachecloud)
  2. 一个取经团或者某个中心下使用一个appId(项目只需要配置appId,引入cache-client依赖即可使用缓存)

原因分析

  1. 拉取我们取经团下部分key分析,确认是否为这部分key导致(通过RDB文件备份起来;并以json格式解析存储) – 由于项目使用key过多 没有发现问题
  2. 确认key或value中是否有 “{” 或 “}” ,因为有这两个字符会导致根据key生成hash值,落到集群节点上的槽失效在这里插入图片描述
  3. 发现大key或者value

问题解决

  1. 确认是代码中使用hset导致
  2. 通过底层源码可知 hset使用为同一个key
    在这里插入图片描述
  3. field只是作为一个属性
  4. 官方中文文档有,但当时没有真正理解(http://redisdoc.com/hash/hset.html)
    在这里插入图片描述
  5. 使用set、setEx替换即可

延伸阅读

参见文档

猜你喜欢

转载自blog.csdn.net/djrm11/article/details/107763667