一、源碼安裝
預先安裝make、gcc
sudo apt install make gcc
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
cd src
make MALLOC=libc
make test
sudo make installhtml
若是須要使用make test(可能須要安裝tcl8.5或更高版本)
You need tcl 8.5 or newer in order to run the Redis test
http://www.tcl.tk/doc/howto/compile.html#unix
https://sourceforge.net/projects/tcl/files/Tcl/node
二、配置
複製源碼中redis.conf到/etc/redis/7000.conf 7001.conf ... 7005.confredis
檢查如下配置參數:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yesapp
三、建立羣集
檢16384個槽(從0開始)
redis5能夠使用redis-cli,redis4和3能夠使用redis-trib.rb(https://redis.io/topics/cluster-tutorial)
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1測試
查看羣集節點
redis-cli -p 7000 cluster nodes
redis-cli -p 7000 cluster nodes | grep myself.net
從新分片
redis-cli --cluster reshard 127.0.0.1:7000
或
redis-cli --cluster reshard <host>:<port> --cluster-from <node-id> --cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes
redis-cli --cluster reshard 127.0.0.1:7000 --cluster-from all --cluster-to 5c44213202ad32ef8d26ae5bd6e0622db8465fd4 --cluster-slots 1000 --cluster-yesunix
羣集健康檢查
redis-cli --cluster check 127.0.0.1:7000htm
四、鏈接羣集測試:
$ redis-cli -c -p 7000
-c 羣集模式
>set foo bar
>set hello world
>get foo
>get helloget
五、手動故障轉移
主節點須要更換機器,能夠把主切換成從源碼
5.1)使用命令查看節點主從狀態
redis-cli -p 7000 cluster nodes
7000(主) 7004(從)
7001(主) 7005(從)
7002(主) 7003(從)
5.2)在從節點7004上執行
redis-cli -p 7000 cluster failover
再查看節點狀態,7000變成從,7004變成主
六、添加、刪除節點
6.1)添加主節點,新加的主節點是空主節點上邊未分槽,須要從新分槽才能作爲正式主節點
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000
127.0.0.1:7006 新加入節點
127.0.0.1:7000 現有羣集任意一個節點
添加從節點時須要 指定 --cluster-slave --cluster-master-id 主節點ID
若是沒有--cluster-master-id 主節點ID則加到最少從節點的主節點下
redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7000 --cluster-slave --cluster-master-id 2a78f8eb08fad0365cc2f58fbf23929e85c74ff5
6.2)查看節點信息,能夠看到7006已加入,是主節點
redis-cli -p 7000 cluster nodes
6.3)添加主節點須要從新分片
redis-cli --cluster reshard 127.0.0.1:7000
6.4)刪除節點能夠直接刪除從節點或空的主節點,能夠把主節點切換成從節點再刪除,或把主節點上槽從新分片到其它主節點上redis-cli --cluster del-node 127.0.0.1:7000 節點ID127.0.0.1:7000 現有羣集任意一個節點節點ID 要刪除的節點ID