問題
codis3.2.2集羣中(三臺機器),其中一臺機器上會出現這種情況:某個庫莫名消失或某個庫的數據(非過期數據)莫名丟失。其他兩臺機器未出現這種情況。
排查
redis的內存問題。因爲三臺機器上的redis的maxmemory均設置爲100000kb,約97.66MB,maxmemory-policy設置爲allkeys-lru數據淘汰策略(從內存數據集中挑選最近最少使用的數據淘汰),即當redis內存數據集快到達maxmemory時,redis會實行allkeys-lru數據淘汰策略。而出現問題的機器上used_memory_human約達到96MB,其他倆機器used_memory_human約15-20MB。其中maxmemory,used_memory可通過命令info memory查看。
解決
提高maxmemory的值。因爲集羣在運行中,所以這裏通過命令行更改maxmemory的值,先執行config set maxmemory 3G,再執行config rewrite