centos 启动一个redis_Redis分片集群搭建笔记

  • 集群架构
  • Linux环境安装Redis
  • 分片集群搭建
  • 分片集群验证
  • 集群扩容与缩容

  • 集群架构

v2-596c5689ca04c33843bfad85a6457f37_b.jpg
  • linux下载安装Redis-5.0.5
[root@centos-linux--2- var]# wget https://download.redis.io/releases/redis-5.0.5.tar.gz
[root@centos-linux--2- var]# tar -zxvf redis-5.0.5.tar.gz
[root@centos-linux--2- var]# cd redis-5.0.5
// 缺少gcc环境需要
[root@centos-linux--2- redis-5.0.5]# yum install gcc
[root@centos-linux--2- redis-5.0.5]# make MALLOC=libc
// 单机启动验证
[root@centos-linux--2- redis-5.0.5]# src/redis-server
  • 分片集群搭建
[root@centos-linux--2- redis-5.0.5]# cd src/
[root@centos-linux--2- src]# mkdir /var/redis-cluster/7001
[root@centos-linux--2- src]# make install PREFIX=/var/redis-cluster/7001
[root@centos-linux--2- src]# cd /var/redis-cluster/7001/bin
[root@centos-linux--2- bin]# cp /var/redis-5.0.5/redis.conf /var/redis-cluster/7001/bin/
// 修改一下几行配置
[root@centos-linux--2- bin]# vim redis.conf
#bind 127.0.0.1
protected-mode no
port 7001
daemonize yes
cluster-enabled yes
[root@centos-linux--2- bin]# cd ../..
[root@centos-linux--2- redis-cluster]# cp -r 7001 7002
[root@centos-linux--2- redis-cluster]# cp -r 7001 7003
[root@centos-linux--2- redis-cluster]# cp -r 7001 7004
[root@centos-linux--2- redis-cluster]# cp -r 7001 7005
[root@centos-linux--2- redis-cluster]# cp -r 7001 7006
// 添加启动脚本
[root@centos-linux--2- redis-cluster]# vim startup.sh
cd 7001/bin
./redis-server redis.conf
cd ../..
cd 7002/bin
./redis-server redis.conf
cd ../..
cd 7003/bin
./redis-server redis.conf
cd ../..
cd 7004/bin
./redis-server redis.conf
cd ../..
cd 7005/bin
./redis-server redis.conf
cd ../..
cd 7006/bin
./redis-server redis.conf
cd ../..
[root@centos-linux--2- redis-cluster]# chmod u+x startup.sh 
[root@centos-linux--2- redis-cluster]# ./startup.sh 
[root@centos-linux--2- redis-cluster]# ps -ef|grep redis
// 进入任何一个客户端
[root@centos-linux--2- redis-cluster]# cd 7001/bin/
// 创建集群,--cluster-replicas 1代表一主一从,注意实际搭建时将IP地址替换为真是IP
[root@centos-linux--2- bin]# ./redis-cli --cluster create 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 --cluster-replicas 1
[root@centos-linux--2- bin]# vim nodes.conf 
  • 分片集群验证
// 连接集群任意一个节点,-c表示是以redis集群方式进行连接,如果使用了密码需添加参数-a 'password'来连接
[root@centos-linux--2- bin]# ./redis-cli -h 127.0.0.1 -p 7001 -c
// 查看集群状态
127.0.0.1:7001> 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:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:759
cluster_stats_messages_pong_sent:827
cluster_stats_messages_sent:1586
cluster_stats_messages_ping_received:822
cluster_stats_messages_pong_received:759
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:1586
// 查看集群节点对应关系
127.0.0.1:7001> cluster nodes
26234aae242b387ac8738c539c7417930e41e882 127.0.0.1:7004@17004 slave ee51cf977e45b427f3dfeab7ab6e0b6a591b689a 0 1601291281494 4 connected
284f1b3c586731a1f58f28fefcf4fd415aaa2733 127.0.0.1:7002@17002 master - 0 1601291282524 2 connected 5461-10922
3c4b03d1dd44c28f4e666dbe7c487c97138788f8 127.0.0.1:7001@17001 myself,master - 0 1601291280000 1 connected 0-5460
ee51cf977e45b427f3dfeab7ab6e0b6a591b689a 127.0.0.1:7003@17003 master - 0 1601291280463 3 connected 10923-16383
a2c5ab426dc10f4b85df2937afee707a33c2281c 127.0.0.1:7006@17006 slave 284f1b3c586731a1f58f28fefcf4fd415aaa2733 0 1601291278401 6 connected
433dee3af5fa1dca3928cf6eb3e4db01a40f0fc0 127.0.0.1:7005@17005 slave 3c4b03d1dd44c28f4e666dbe7c487c97138788f8 0 1601291282000 5 connected
  • 集群扩容与缩容
// 扩容时一定是重新安装,而不是复制已有数据的节点
[root@centos-linux--2- redis-cluster]# mkdir 7007
[root@centos-linux--2- redis-cluster]# cd /var/redis-5.0.5/src/
[root@centos-linux--2- src]# make install PREFIX=/var/redis-cluster/7007
[root@centos-linux--2- 7007]# cd bin/
[root@centos-linux--2- bin]# cp /var/redis-5.0.5/redis.conf /var/redis-cluster/7007/bin/
[root@centos-linux--2- bin]# vim redis.conf
#bind 127.0.0.1
protected-mode no
port 7007
daemonize yes
cluster-enabled yes
[root@centos-linux--2- bin]# cd ../..
[root@centos-linux--2- redis-cluster]# cp -r 7007 7008
[root@centos-linux--2- bin]# cd 7007/bin/
[root@centos-linux--2- bin]# ./redis-server redis.conf
[root@centos-linux--2- bin]# cd ../../7008/bin/
[root@centos-linux--2- bin]# ./redis-server redis.conf
[root@centos-linux--2- bin]# ps -ef|grep redis
[root@centos-linux--2- bin]# cd ../../7001/bin/
[root@centos-linux--2- bin]# ./redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
[root@centos-linux--2- bin]# ./redis-cli -p 7001 -c
127.0.0.1:7001> cluster nodes
// 设置新加入的master
[root@centos-linux--2- bin]# ./redis-cli --cluster reshard 127.0.0.1:7007
>>> Performing Cluster Check (using node 127.0.0.1:7007)
M: 6826515163d0d22399174821aa1a5b9331b74b34 127.0.0.1:7007
   slots: (0 slots) master
M: ee51cf977e45b427f3dfeab7ab6e0b6a591b689a 127.0.0.1:7003
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 433dee3af5fa1dca3928cf6eb3e4db01a40f0fc0 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 3c4b03d1dd44c28f4e666dbe7c487c97138788f8
S: 26234aae242b387ac8738c539c7417930e41e882 127.0.0.1:7004
   slots: (0 slots) slave
   replicates ee51cf977e45b427f3dfeab7ab6e0b6a591b689a
M: 284f1b3c586731a1f58f28fefcf4fd415aaa2733 127.0.0.1:7002
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
M: 3c4b03d1dd44c28f4e666dbe7c487c97138788f8 127.0.0.1:7001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: a2c5ab426dc10f4b85df2937afee707a33c2281c 127.0.0.1:7006
   slots: (0 slots) slave
   replicates 284f1b3c586731a1f58f28fefcf4fd415aaa2733
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4080 //分的slot个数
What is the receiving node ID? 6826515163d0d22399174821aa1a5b9331b74b34 //新加入master nodeID
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: all //分槽策略
127.0.0.1:7001> cluster nodes
// 新master添加从节点
[root@centos-linux--2- bin]# ./redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7007 --cluster-slave --cluster-master-id 6826515163d0d22399174821aa1a5b9331b74b34
// 缩容
[root@centos-linux--2- bin]# ./redis-cli --cluster del-node 127.0.0.1:7008 6826515163d0d22399174821aa1a5b9331b74b34
[root@centos-linux--2- bin]# ps -ef|grep redis

友情提示:记得点赞、收藏、加关注,嘻嘻嘻~

v2-00ee32c36ff2add684bbd42f0649aa4e_b.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值