redis槽位為什么是16384個?


參考 https://blog.csdn.net/qq_38262266/article/details/108816456


slot總共有16384個,這個數字是由redis的作者給定的一個比較合理的數據,crc16算法產生的哈希值有16bit,也就是說有2^16=65536個值,但是為什么只取了16384個槽?因為redis集群的設計是節點間會相互ping-pong通信,那就會有消息產生,槽位、節點數越大,通信需要攜帶的數據也就越大,而節點至少每秒會發送一次ping消息,網絡資源負荷就很高,實際場景中的redis節點數據不會超過1000個,而節點數據小於1000的時候,16384個槽位足夠使用了。

 

總結:因為redis-cluster集群之間會互相通信,需要攜帶一定的數據,這個數據量會隨着槽位地增加而增大造成網絡擁塞,降低了redis的性能。redis-cluster的節點一般不會超過1000,而1000以內,16384個槽完全夠用了,而且性能也處於健康的狀態。可以理解為設計者針對實際使用情況的優化設計。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM