redis cluster安装以及操作

redis-8000.conf

port 8000
cluster-enabled yes
cluster-config-file nodes-8000.conf
cluster-node-timeout 15000
daemonize yes
appendonly yes
dir "/usr/local/redis/redis-data/"
appendfilename "appendonly-8000.aof"
logfile "8000.log"
pidfile /var/run/redis-8000.pid
dbfilename "dump-8000.rdb"
bind 192.168.138.128
protected-mode no

配置cluster配置文件 8000 8001 8002为主机 8003 8004 8005为从机

sed 's/8000/8001/g' redis-8000.conf > redis-8001.conf;
sed 's/8000/8002/g' redis-8000.conf > redis-8002.conf;
sed 's/8000/8003/g' redis-8000.conf > redis-8003.conf;
sed 's/8000/8004/g' redis-8000.conf > redis-8004.conf;
sed 's/8000/8005/g' redis-8000.conf > redis-8005.conf

启动服务器

redis-server /etc/config/cluster/redis-8000.conf;
redis-server /etc/config/cluster/redis-8001.conf;
redis-server /etc/config/cluster/redis-8002.conf;
redis-server /etc/config/cluster/redis-8003.conf;
redis-server /etc/config/cluster/redis-8004.conf;
redis-server /etc/config/cluster/redis-8005.conf;

8000分别与其他端口建立关系

redis-cli -c -p 8000 cluster meet 192.168.138.128 8001;
redis-cli -c -p 8000 cluster meet 192.168.138.128 8002;
redis-cli -c -p 8000 cluster meet 192.168.138.128 8003;
redis-cli -c -p 8000 cluster meet 192.168.138.128 8004;
redis-cli -c -p 8000 cluster meet 192.168.138.128 8005;

0-16383slot的分布在8000 8001 8002主机的不同范围

start=$1
end=$2
port=$3
for slot in `seq ${start} ${end}`
do
   echo "slot:${slot}"
   redis-cli -c -p ${port} cluster addslots ${slot}
done

sh addSolts.sh 0 5460 8000
sh addSolts.sh 5461 10922 8001
sh addSolts.sh 10923 16383 8002

查看cluster状态信息

[root@localhost scripts]# redis-cli -c -h 192.168.138.128 -p 8000
192.168.138.128:8000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_sent:1057
cluster_stats_messages_received:982

查看slots的信息

192.168.138.128:8000> cluster slots
1) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "192.168.138.128"
      2) (integer) 8001
      3) "41ff2c811fa237c423934f4fb60566530d65bcd1"
2) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "192.168.138.128"
      2) (integer) 8002
      3) "2e43cbd8495bba9bf0d0d5bba6668391fc0c053b"
3) 1) (integer) 0
   2) (integer) 5460
   3) 1) "192.168.138.128"
      2) (integer) 8000
      3) "30c231a603cf446ab3e1394b12220999933f8c1c"

使8003 8004 8005成为8000 8001 8002的从

redis-cli -c -p 8003 cluster replicate `redis-cli -c -p 8003 cluster nodes | grep 8000 | awk '{print $1}'`;
redis-cli -c -p 8004 cluster replicate `redis-cli -c -p 8003 cluster nodes | grep 8001 | awk '{print $1}'`;
redis-cli -c -p 8005 cluster replicate `redis-cli -c -p 8003 cluster nodes | grep 8002 | awk '{print $1}'`;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值