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替換即可
延伸閱讀
參見文檔
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章