前言:
RedisCluster采用slot分區(qū),所有的鍵根據哈希函數(shù)(CRC16[key]&16383)映射到0-16383槽內,共16384個槽位,每個節(jié)點維護部分槽及槽所映射的鍵值數(shù)據
哈希函數(shù): Hash()=CRC16[key]&16383


redisCluster的缺陷:
a,鍵的批量操作支持有限,比如mset, mget,如果多個鍵映射在不同的槽,就不支持了? mset name james age 19
b,鍵事務支持有限,當多個鍵分布在不同節(jié)點時無法使用事務,同一節(jié)點是支持事務
c,鍵是數(shù)據分區(qū)的最小粒度,不能將一個很大的鍵值對映射到不同的節(jié)點
d,不支持多數(shù)據庫,只有0,select 0
e,復制結構只支持單層結構,不支持樹型結構。
一、手動搭建
1、步驟
該集群共有三個master,每個master下分別有一個slave,共有6個節(jié)點
a、首先配置6個單節(jié)點redis.conf
b、分別啟動這6個節(jié)點
c、節(jié)點握手,進入一個節(jié)點讓該節(jié)點分別和其余5個節(jié)點握手、
d、分別為三個master分配哈希槽
e、集群映射,分別為三個slave指定各自的master
二、利用ruby搭建
1、首先安裝ruby和redis.gem
下載鏈接:https://pan.baidu.com/s/1kWsf3Rh 密碼:n3pc
從這個鏈接下載? ruby-2.3.1.tar.gz? 和? redis-3.3.0.gem
? tar -zxvf ruby-2.3.1.tar.gz? ? //解壓
? a,? cd ruby-2.3.1
? b,? ./configure -prefix=/usr/local/ruby? ? //指定安裝目錄
? c,? make && make install? //過程會有點慢,大概5-10分鐘
? d,? 然后gem install -l redis-3.3.0.gem? ? //若沒有gem需要安裝yum install gem -y
2、配置集群
? e, 準備好6個節(jié)點配置文件redis6379.conf....redis6391.conf, 加上bind 192.168.1.111(注意不要設置requirepass,不然./redis-trib訪問不了……)
? f, 將/usr/local/bin/clusterconf/data的config-file刪除;
? g, 依次啟動6個節(jié)點:./redis-server clusterconf/redis6379.conf
? h, 如果之前redis有數(shù)據存在,分別flushall清空各個節(jié)點的數(shù)據;(坑:不需要cluster meet ..)
? i, ./redis-trib.rb create --replicas 1 192.168.1.111:6379 192.168.1.111:6380 192.168.1.111:6381 192.168.1.111:6389 192.168.1.111:6390 192.168.1.111:6391