只需要一台master
sysctl vm.overcommit_memory
如果是0要打开
sysctl -w vm.overcommit_memory=1
mkdir /usr/local/rediscluster
cd /usr/local/rediscluster
mkdir 700{1..6}
cd 7001
vim redis.conf
port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
pidfile "/usr/local/rediscluster/7001/redis.pid"
logfile "/usr/local/rediscluster/7001/redis.log"
daemonize yes
dir "/usr/local/rediscluster/7001"
##############
port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
pidfile "/usr/local/rediscluster/7001/redis.pid"
logfile "/usr/local/rediscluster/7001/redis.log"
daemonize yes
dir "/usr/local/rediscluster/7001"
##############
master 端
redis-server /usr/local/rdiscluster/7001/redis.conf
cp redis.conf ../7002/
3 4 5 6
修改端口
vim ../7002/redis.conf
%s/7001/7002/g
全部修改为对应文件的端口和名字
分别用 redis-server redis.conf 启动
创建集群
redis-cli --cluster help
redis-server redis.conf 6个打开
[root@server4 7001]# redis-server ../7003/redis.conf
[root@server4 7001]# redis-server ../7004/redis.conf
[root@server4 7001]# redis-server ../7005/redis.conf
[root@server4 7001]# redis-server ../7006/redis.conf
redis-cli --cluster create --cluster-replicas 1 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 127.0.0.1:7006
后面的1表示拥有一个slave
无中心化,任何一个都是master
rediscli --cluster info 127.0.0.1:7001
redis-cli -c -p 7001
-c 表示集群管理 cluster
set name wxh
get name
任何一个结点都是一个入口
如果shutdown 7002
2的奴隶自动接管
但是shutdown主人的奴隶、半数以上集群不能挂掉,否则会出问题。
直接redis-cli redis.conf 对应的down号即可
再添加
上述方法添加7007 7008
redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
后面为已存在的端口
redis-cli -cluster check 12.0.0.1:7001
检查下发现没有槽
为主添加从
redis-cli --cluster add-node --cluster-slave --cluster-master-id=fc3e9fdd5b64e64758fea68c4ae1a4200a30c7d6 127.0.0.1:7007 127.0.0.1:7008
注意顺序
迁移哈希槽
redis-cli --cluster reshard --cluster-from all --cluster-to fdsfa87f87dsf87y8weyf87hy8fhew934r98 --cluster-slots 300 --cluster--yes 127.0.0.1:7001
均衡哈希槽
redis-cli --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 127.0.0.1:7001