背景:
公司的音視頻 盜版檢測業務,使用redis-cluster作為 key-value 數據庫, 使用張圖片的 特征hash值作key。因為數據量太大,機器有限,集群內沒有slaver
問題描述
線上服務報錯 (SCARD 4288594168) of pipeline caused error: MOVED 9239 10.xxx.xx.149:6390,這個端口 是redis集群中一個節點。
1 使用redis-trib check 10.xxx.xx.149:6390, 報 無法連接的錯誤
2 查看 6390節點的log, 報錯 Error opening /setting AOF rewrite IPC pipes: Numerical result out of range
google了一番,發現這個鏈接 linkA: http://blog.csdn.net/syq521125/article/details/53006317 里提到了如何解決。
我按照他的第2種說法 重啟了redis, 我的aof文件 4.4G左右,大約幾分鍾 服務就起來了 ,重新執行redis-trib check 10.xxx.xx.149:6390, 集群已經能訪問6390節點了。
我掛掉的這個節點的 內存消耗 已經達到了14.5g, 對應的aof文件4.4G。按照linkA種表達的問題,我需要對數據庫的節點進行擴充,使單點的數據量減少。
我將集群中 redis實例數目加倍后,單點的內存消耗 7g左右,文件2G.覺得應該暫時安全了,以我的經驗看,10g內存以下,還都是安全的。
自己的心理變化
這是我第一次遇到 線上的數據庫掛掉,線上問題,謹小慎微,所以猶豫了1個小時,要不要重啟,中間也查了好一會, 發現重啟后還行,數據恢復的挺快。