redis槽是什麼?
槽(slot)概念
Redis Cluster中有一個16384長度的槽的概念,他們的編號為0、1、2、3… …16382、16383。這個槽是一個虛擬的槽,並不是真正存在的。
正常運作的時候,Redis Cluster中的每個Master節點都會負責一部分的槽,當有某個key被映射到某個Master負責的槽,那麼這個Master負責為這個key提供服務,至於哪個Master節點負責哪個槽,這是可以由使用者指定的,也可以在初始化的時候自動產生(redis-trib.rb腳本)。
這裡值得一提的是,在Redis Cluster中,只有Master才擁有槽的所有權,如果是某個Master的slave,這個slave只負責槽的使用,但是沒有所有權。
推薦:《Redis影片教學》
Redis Cluster分片實作
一般分片(Sharding)實現的方式有list、range和hash(或基於上述的組合方式)等方式。
而Redis的實作方式是基於hash的分片方式,具體是虛擬槽分區。
虛擬槽分區槽(slot):使用分散度良好的hash函數把所有資料映射到一個固定範圍的整數集合中,這個整數集合就是槽。
Redis Cluster槽: Redis Cluster槽的範圍是0 ~ 16383。槽是叢集內資料管理和遷移的基本單位。
以上是redis槽是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!