CentOS 7 redis5 cluster

环境准备
系统版本:CentOS Linux release 7.5.1804 (Core)

服务器IP地址:

172.16.88.23 node3
172.16.88.24 node4
172.16.88.25 node5

角色分配

Node3(端口7000 7001)
Node4(端口7000 7001)
Node5(端口7000 7001

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
检查selinux的状态
getenforce (Disabled状态)
如果状态不对,请修改配置文件
vim /etc/selinux/config
SELINUX=disabled

系统参数配置

在文件/etc/sysctl.conf追加参数
net.core.somaxconn = 551
vm.overcommit_memory = 1
在文件/etc/security/limits.conf追加
* soft nofile 65536
* hard nofile 65536

安装依赖的软件

yum install -y gcc gcc-c++ make
下载redis的版本http://download.redis.io/releases/
上传redis的软件并解压
tar xf redis-5.0.4.tar.gz
cd redis-5.0.4
make && make PREFIX=/usr/local/redis install
到软件安装后的目录
cd /usr/local/redis/
创建两个实例配置文件
mkdir -p conf/{node1,node2}

在目录conf/node1 和conf/node2 里面添加配置文件

port 7000
bind 172.16.88.23
protected-mode yes
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis1.pid
loglevel notice
logfile “/data/redis/redis1.log”
save 900 1
save 300 10
save 60 10000
cluster-enabled yes
cluster-config-file “/usr/local/redis/conf/node1/node.conf”
cluster-node-timeout 15000
dbfilename dump.rdb
dir “/data/redis/ node1”
requirepass redis
masterauth redis

其中的参数 port bind pidfile logfile cluster-config-file dir requirepass masterauth 根据实际情况进行填写 

启动服务

/usr/local/redis/bin/redis-server /usr/local/redis/conf/node1/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/conf/node2/redis.conf

添加redis实例到集群

/usr/local/redis/bin/redis-cli –cluster create 172.16.88.23:7000 172.16.88.23:7001 172.16.88.24:7000 172.16.88.24:7001 172.16.88.25:7000 172.16.88.25:7001 –cluster-replicas 1 -a redis

检查集群情况

/usr/local/redis/bin/redis-cli –cluster check 172.16.88.23:7000 -a redis
检查任何一个实例,都会列出整个集群的信息

登录集群

/usr/local/redis/bin/redis-cli -c -h 172.16.88.23 -p 7001 -a redis

验证集群

打印集群信息
cluster info
列出集群当前已知的所有节点
cluster nodes

添加从节点测试验证
启动一个7002端口的实例,然后将节点添加成为从节点
/usr/local/redis/bin/redis-cli –cluster add-node 172.16.88.25:7002 172.16.88.25:7000 –cluster-slave –cluster-master-id 06ccd3a77f8c5d567617de622f5896998892d986 -a redis

说明:add-node 第一个参数是需要添加的实例,第二个参数是指明实例的master
cluster-slave 指明添加的实例是slave节点
cluster-master-id 指明实例的master节点的ID
移除集群节点, 移除 node_id 指定的节点
/usr/local/redis/bin/redis-cli –cluster del-node 172.16.88.23:7000 87f1fbf893fcf2b7255af3525a6e3b2255a2079a -a redis
说明:del-node 第一个参数是连接的集群入口,第二个参数是需要删除的node_id信息

在线迁移slot reshard

/usr/local/redis/bin/redis-cli –cluster reshard 172.16.88.23:7000 -a redis
说明:对节点172.16.88.23:7000进行slot迁移
How many slots do you want to move (from 1 to 16384)? 迁移多少个槽位
What is the receiving node ID? 接受的节点ID
Please enter all the source node IDs 输入需要迁移的源节点信息
#是否看迁移计划?
Do you want to proceed with the proposed reshard plan (yes/no)? yes

 

  

  

 

 

 

 

 

 

 

 

 

 

posted @ 2020-09-15 13:26  风不动幡动  阅读(47)  评论(0)    收藏  举报