redis槽是什么

redis槽是什么

redis槽是什么?

槽(slot)概念

redis Cluster中有一個(gè)16384長度的槽的概念,他們的編號(hào)為0、1、2、3……16382、16383。這個(gè)槽是一個(gè)虛擬的槽,并不是真正存在的。

正常工作的時(shí)候,Redis Cluster中的每個(gè)Master節(jié)點(diǎn)都會(huì)負(fù)責(zé)一部分的槽,當(dāng)有某個(gè)key被映射到某個(gè)Master負(fù)責(zé)的槽,那么這個(gè)Master負(fù)責(zé)為這個(gè)key提供服務(wù),至于哪個(gè)Master節(jié)點(diǎn)負(fù)責(zé)哪個(gè)槽,這是可以由用戶指定的,也可以在初始化的時(shí)候自動(dòng)生成(redis-trib.rb腳本)。

這里值得一提的是,在Redis Cluster中,只有Master才擁有槽的所有權(quán),如果是某個(gè)Master的slave,這個(gè)slave只負(fù)責(zé)槽的使用,但是沒有所有權(quán)。

推薦:《Redis視頻教程

Redis Cluster分片實(shí)現(xiàn)

一般分片(Sharding)實(shí)現(xiàn)的方式有l(wèi)ist、range和hash(或者基于上述的組合方式)等方式。

而Redis的實(shí)現(xiàn)方式是基于hash的分片方式,具體是虛擬槽分區(qū)。

虛擬槽分區(qū)槽(slot):使用分散度良好的hash函數(shù)把所有數(shù)據(jù)映射到一個(gè)固定范圍的整數(shù)集合中,這個(gè)整數(shù)集合就是槽。

Redis Cluster槽: Redis Cluster槽的范圍是0 ~ 16383。槽是集群內(nèi)數(shù)據(jù)管理和遷移的基本單位。

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享