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

浙公网安备 33010602011771号