Redis cluster模式(手动)搭建实操

实操过程 

 6379(Master)6380(Master)6381(Master)6382(Slave)6383(Slave)6384(Slave)
 Centos7.4     redis 4.0.14
安装redis

#  yum  install gcc gcc-c++

# useradd redis

# echo "Redis123" |passwd --stdin redis

# su  -  redis

# 以下所有的操作全部都在redis用户下执行

 

$ wget http://download.redis.io/releases/redis-4.0.14.tar.gz

$ tar -zxf redis-4.0.14.tar.gz

$ mkdir -p  /home/redis/redis4.0#创建 redis 安装目录

$ cd redis-4.0.14

$ make

$ make PREFIX=/home/redis/redis4.0 install#安装到~/redis4.0目录

$ export PATH=$PATH:$HOME/redis4.0/bin

#安装完成

$ mkdir /home/redis/{redis_6379,redis_6380,redis_6381,redis_6382,redis_6383,redis_6384}#创建redis工作目录

编辑配置文件

$ vim /home/redis/redis4.0/redis_6379.conf

bind 192.168.56.111
port 6379
daemonize yes
dir /home/redis/redis_6379
dbfilename dump.rdb
loglevel notice
logfile redis.log
pidfile redis.pid
repl-backlog-size 16mb
repl-backlog-ttl 3600
cluster-enabled yes
cluster-config-file nodes_6379.conf
cluster-require-full-coverage no

#其他配置信息....

$ sed 's/6379/6380/g' /home/redis/redis4.0/redis_6379.conf > /home/redis/redis4.0/redis_6380.conf

$ sed 's/6379/6381/g' /home/redis/redis4.0/redis_6379.conf > /home/redis/redis4.0/redis_6381.conf

$ sed 's/6379/6382/g' /home/redis/redis4.0/redis_6379.conf > /home/redis/redis4.0/redis_6382.conf

$ sed 's/6379/6383/g' /home/redis/redis4.0/redis_6379.conf > /home/redis/redis4.0/redis_6383.conf

$ sed 's/6379/6384/g' /home/redis/redis4.0/redis_6379.conf > /home/redis/redis4.0/redis_6384.conf

启动实例

$ redis-server    /home/redis/redis4.0/redis_6379.conf

$ redis-server    /home/redis/redis4.0/redis_6380.conf

$ redis-server    /home/redis/redis4.0/redis_6381.conf

$ redis-server    /home/redis/redis4.0/redis_6382.conf

$ redis-server    /home/redis/redis4.0/redis_6383.conf

$ redis-server    /home/redis/redis4.0/redis_6384.conf

检查启动状态$ netstat -ntlp | grep redis-server
tcp        0      0 192.168.56.111:16380    0.0.0.0:*               LISTEN      30799/redis-server  
tcp        0      0 192.168.56.111:16381    0.0.0.0:*               LISTEN      30806/redis-server  
tcp        0      0 192.168.56.111:16382    0.0.0.0:*               LISTEN      30813/redis-server  
tcp        0      0 192.168.56.111:16383    0.0.0.0:*               LISTEN      30821/redis-server  
tcp        0      0 192.168.56.111:16384    0.0.0.0:*               LISTEN      30828/redis-server  
tcp        0      0 192.168.56.111:6379     0.0.0.0:*               LISTEN      30791/redis-server  
tcp        0      0 192.168.56.111:6380     0.0.0.0:*               LISTEN      30799/redis-server  
tcp        0      0 192.168.56.111:6381     0.0.0.0:*               LISTEN      30806/redis-server  
tcp        0      0 192.168.56.111:6382     0.0.0.0:*               LISTEN      30813/redis-server  
tcp        0      0 192.168.56.111:6383     0.0.0.0:*               LISTEN      30821/redis-server  
tcp        0      0 192.168.56.111:6384     0.0.0.0:*               LISTEN      30828/redis-server  
tcp        0      0 192.168.56.111:16379    0.0.0.0:*               LISTEN      30791/redis-server 
各节点meet

$ redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6380
$ redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6381
$ redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6382
$ redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6383
$ redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6384

 

$ redis-cli -h 192.168.56.111 -p 6379 cluster nodes

$ redis-cli -h 192.168.56.111 -p 6379 cluster info

分配slot

$ redis-cli -h 192.168.56.111 -p 6379 cluster addslots {0..5461}
$ redis-cli -h 192.168.56.111 -p 6380 cluster addslots {5462..10922}
$ redis-cli -h 192.168.56.111 -p 6381 cluster addslots {10923..16383}

 

$redis-cli -h 192.168.56.111 -p 6379 cluster nodes
f62b8b80936b64191020ca1f2140a02938ca7ac6 192.168.56.111:6380@16380 master - 0 1606189150785 0 connected 5462-10922
895b22f07aad9ef1cb6b6d891c676dd06e16f97a 192.168.56.111:6381@16381 master - 0 1606189148000 5 connected 10923-16383
e090f93202ef4e946951f873e167254f59b424f0 192.168.56.111:6382@16382 master - 0 1606189147000 2 connected
37029a73b1cf3675110dbf5c08df262bb99c2f08 192.168.56.111:6379@16379 myself,master - 0 1606189150000 1 connected 0-5461
29fa3bf366a527849aba809eb1cf98bed4c0714f 192.168.56.111:6384@16384 master - 0 1606189149776 4 connected
256192c2367b2960d32b163ccc1368289530c1aa 192.168.56.111:6383@16383 master - 0 1606189148768 3 connected

$redis-cli -h 192.168.56.111 -p 6379 cluster slots

1) 1) (integer) 5462
   2) (integer) 10922
   3) 1) "192.168.56.111"
      2) (integer) 6380
      3) "f62b8b80936b64191020ca1f2140a02938ca7ac6"
2) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "192.168.56.111"
      2) (integer) 6381
      3) "895b22f07aad9ef1cb6b6d891c676dd06e16f97a"
3) 1) (integer) 0
   2) (integer) 5461
   3) 1) "192.168.56.111"
      2) (integer) 6379
      3) "37029a73b1cf3675110dbf5c08df262bb99c2f08"

创建主从关系

$ redis-cli -h 192.168.56.111 -p 6382 cluster replicate 37029a73b1cf3675110dbf5c08df262bb99c2f08
$ redis-cli -h 192.168.56.111 -p 6383 cluster replicate f62b8b80936b64191020ca1f2140a02938ca7ac6
$ redis-cli -h 192.168.56.111 -p 6384 cluster replicate 895b22f07aad9ef1cb6b6d891c676dd06e16f97a

 

$ redis-cli -h 192.168.56.111 -p 6379 cluster nodes
f62b8b80936b64191020ca1f2140a02938ca7ac6 192.168.56.111:6380@16380 master - 0 1606189622000 0 connected 5462-10922
895b22f07aad9ef1cb6b6d891c676dd06e16f97a 192.168.56.111:6381@16381 master - 0 1606189624000 5 connected 10923-16383
e090f93202ef4e946951f873e167254f59b424f0 192.168.56.111:6382@16382 slave 37029a73b1cf3675110dbf5c08df262bb99c2f08 0 1606189623000 2 connected
37029a73b1cf3675110dbf5c08df262bb99c2f08 192.168.56.111:6379@16379 myself,master - 0 1606189622000 1 connected 0-5461
29fa3bf366a527849aba809eb1cf98bed4c0714f 192.168.56.111:6384@16384 slave 895b22f07aad9ef1cb6b6d891c676dd06e16f97a 0 1606189625213 5 connected
256192c2367b2960d32b163ccc1368289530c1aa 192.168.56.111:6383@16383 slave f62b8b80936b64191020ca1f2140a02938ca7ac6 0 1606189624209 3 connected

测试

$ redis-cli -h 192.168.56.111 -p 6379 -c 

redis > set hello world

 

部分命令

#启动实例
redis-server    /home/redis/redis4.0/redis_6379.conf
redis-server    /home/redis/redis4.0/redis_6380.conf
redis-server    /home/redis/redis4.0/redis_6381.conf
redis-server    /home/redis/redis4.0/redis_6382.conf
redis-server    /home/redis/redis4.0/redis_6383.conf
redis-server    /home/redis/redis4.0/redis_6384.conf

#meet
redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6380
redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6381
redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6382
redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6383
redis-cli -h 192.168.56.111 -p 6379 cluster meet 192.168.56.111 6384

#分配slots
redis-cli -h 192.168.56.111 -p 6379 cluster addslots {0..5461}
redis-cli -h 192.168.56.111 -p 6380 cluster addslots {5462..10922}
redis-cli -h 192.168.56.111 -p 6381 cluster addslots {10923..16383}

#指定主从关系
redis-cli -h 192.168.56.111 -p 6382 cluster replicate 37029a73b1cf3675110dbf5c08df262bb99c2f08  #6379的节点ID,通过 cluster nodes 获取
redis-cli -h 192.168.56.111 -p 6383 cluster replicate f62b8b80936b64191020ca1f2140a02938ca7ac6  #6380的节点ID,通过 cluster nodes 获取
redis-cli -h 192.168.56.111 -p 6384 cluster replicate 895b22f07aad9ef1cb6b6d891c676dd06e16f97a  #6381的节点ID,通过 cluster nodes 获取

#查看分配状态及主从关系
redis-cli -h 192.168.56.111 -p 6379 cluster nodes

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值