###Redis集羣###
0.準備
軟件:
redis-3.0.0.gem
redis-3.0.0.tar.gz#源碼
1.安裝ruby環境
redis基於ruby槽位計算,hash算法技術,key是用hash存在的,key分佈在數組的槽位內(16384個槽位),下標從0到2^N,而且採用鏈表解決衝突。
yum install -y ruby
yum install -y rubygems
2.安裝ruby和redis的接口程序
cp redis-3.0.0.gem /usr/local/
gem install redis-3.0.0.gem
2.安裝到opt下面
cd /opt/
mkdir redis-cluster
cd /home
tar -zxvf redis-3.0.0.tar.gz -C /opt/redis-cluster
建立6個目錄7001--7006,redis集羣最低6臺機器,搭建僞集羣須要建立6個redis實例,以端口區分;redis集羣要求最低3個主節點,因此3個master,3個slave一共最少6個redis實例.
mkdir 7001 7002 7003 7004 7005 7006
修改配置文件夾redis.conf
pidfile /opt/redis-cluster/7001/redis.pid[是否是非必須須要測]
port 7001[同一臺機器僞集羣必須改]
daemonize yes
cluster-enabled yes[必須]
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 192.168.10.100[每一個redis改爲本身的ip]
cp redis.conf ../7001
cp redis.conf ../7002
cp redis.conf ../7003
cp redis.conf ../7004
cp redis.conf ../7005
cp redis.conf ../7006
修改端口號:
cd ../
vim 7001/redis.conf
vim 7002/redis.conf
vim 7003/redis.conf
vim 7004/redis.conf
vim 7005/redis.conf
vim 7006/redis.conf
#編譯源碼
cd /opt/redis-cluster/redis-3.0.0
make && make install
複製生成的可執行文件
cd src
cp redis-server/opt/redis-cluster/7001#redis服務端
cp redis-server/opt/redis-cluster/7002
cp redis-server/opt/redis-cluster/7003
cp redis-server/opt/redis-cluster/7004
cp redis-server/opt/redis-cluster/7005
cp redis-server/opt/redis-cluster/7006
cp redis-cli /opt/redis-cluster#控制檯客戶端工具
cp redis-trib.rb/opt/redis-cluster#初始化集羣可執行文件
#3.啓動集羣
先啓動6臺redis實例
進入7001 7002 7003 7004 7005 7006
分別執行
./redis-server ./redis.conf
ps -ef | grep redis
6個redis啓動成功
初始化集羣,把6臺機器歸入集羣
cd /opt/redis-cluster
./redis-trib.rb create --replicas 1 192.168.10.100:7001 192.168.10.100:7002 192.168.10.100:7003 192.168.10.100:7004 192.168.10.100:7005 192.168.10.100:7006
到此redis集羣搭建啓動成功.
#鏈接redis任意一臺
./redis-cli -c -p 7001 -h ip
#查看集羣信息
>cluster info
>cluster nodes
#殺死全部redis進程
kill -9 $(ps -ef|grep -E 'redis'|grep -v grep|awk '{print $2}')
有關配置文件參數說明:參考分類筆記-->NoSQL-->Redis-->Redis配置文件參數說明
集羣動態擴展:
客戶端鏈接redis:
./redis-cli -p 7001 -h ip
cluster info
quit
添加節點:
主節點
./redis-trib.rb add-node 192.168.10.100:7001
192.168.10.100
:7007
一次添加一臺機器
從節點
./redis-trib.rb add-node --slave --master-id
[OK] New node added correctly.
刪除主節點
./redis-trib.rb del-node 192.168.10.100:7001 192.168.10.100:
7007
cluster nodes查看集羣節點信息
./redis-cli -c -p 7001
分配槽位:
./redis-trib.rb reshard 192.168.10.100:7001
500
8ebe5fe6f79a343319201066c962f55327f1037a
all
./redis-cli -c -p 7001
cluster nodes
看到:ted 0-165 5461-5627 10923-11088分配成功
添加從節點:
./redis-trib.rb add-node --slave --master-id 8ebe5fe6f79a343319201066c962f55327f1037a 192.168.10.100:7007 192.168.10.100:7008