本篇文章為大家展示了redis中的槽有多少個,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯建站自2013年創(chuàng)立以來,是專業(yè)互聯網技術服務公司,擁有項目網站建設、成都做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元西區(qū)做網站,已為上家服務,為西區(qū)各地企業(yè)和個人服務,聯系電話:028-86922220
Redis 集群中內置了 16384 個哈希槽,當需要在 Redis 集群中放置一個 key-value時,redis 先對 key 使用 crc16 算法算出一個結果,然后把結果對 16384 求余數,這樣每個 key 都會對應一個編號在 0-16383 之間的哈希槽,redis 會根據節(jié)點數量大致均等的將哈希槽映射到不同的節(jié)點。Redis 集群沒有使用一致性hash, 而是引入了哈希槽的概念。
Redis 集群有16384個哈希槽,每個key通過CRC16校驗后對16384取模來決定放置哪個槽.集群的每個節(jié)點負責一部分hash槽。這種結構很容易添加或者刪除節(jié)點,并且無論是添加刪除或者修改某一個節(jié)點,都不會造成集群不可用的狀態(tài)。
使用哈希槽的好處就在于可以方便的添加或移除節(jié)點。
當需要增加節(jié)點時,只需要把其他節(jié)點的某些哈希槽挪到新節(jié)點就可以了;
當需要移除節(jié)點時,只需要把移除節(jié)點上的哈希槽挪到其他節(jié)點就行了;
在這一點上,我們以后新增或移除節(jié)點的時候不用先停掉所有的 redis 服務。
在redis中,把一個key-value鍵值對放入的最簡單的方式就是set key value,如下所示:
127.0.0.1:7000> set key value -> Redirected to slot [12539] located at 192.168.39.153:7002 OK 192.168.39.153:7002> get key "value" 192.168.39.153:7002>
可以看出,當我們把key的值設置成為value的時候,客戶端被重定向到了另一個節(jié)點192.168.39.153:7002,這是因為key對應的槽位是12359,所以我們的key-value就被放到了槽12359對應的節(jié)點,192.168.39.153:7002了。
Redis Cluster是自己做的crc16的簡單hash算法,沒有用一致性hash。Redis的作者認為它的crc16(key) mod 16384的效果已經不錯了,雖然沒有一致性hash靈活,但實現很簡單,節(jié)點增刪時處理起來也很方便。
節(jié)點增刪時不丟失數據和hash算法沒什么關系,不丟失數據要求的是一份數據有多個副本。
當你往Redis Cluster中加入一個Key時,會根據crc16(key) mod 16384計算這個key應該分布到哪個hash slot中,一個hash slot中會有很多key和value。你可以理解成表的分區(qū),使用單節(jié)點時的redis時只有一個表,所有的key都放在這個表里;改用Redis Cluster以后會自動為你生成16384個分區(qū)表,你insert數據時會根據上面的簡單算法來決定你的key應該存在哪個分區(qū),每個分區(qū)里有很多key。
上述內容就是redis中的槽有多少個,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道。
分享題目:redis中的槽有多少個
分享網址:http://m.2m8n56k.cn/article12/jdssdc.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站營銷、微信小程序、響應式網站、品牌網站設計、App設計、網站內鏈
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯