一、方案规划
申请 vip 绑定到hostServerHA11,hostServerHA12
hostServerHA11   192.168.126.11   #安装haproxy,keepalived, vip 192.168.126.10, centos7
hostServerHA12   192.168.126.12   #安装haproxy,keepalived, vip 192.168.126.10, centos7
hostServerRedis1 192.168.126.21   #开启两个端口 6380, 6381, centos7
hostServerRedis2 192.168.126.22   #开启两个端口 6380, 6381, centos7
hostServerRedis3 192.168.126.23   #开启两个端口 6380, 6381, centos7
搭建一个3master,3slave的主从集群,采用redis6.2.6版本
二、安装redis软件
在hostServerRedis1,hostServerRedis2, hostServerRedis3上面安装redis软件
- 进入/etc/yum.repos.d, vim remi.epol,写入如下内容
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 | # Repository: http://rpms.remirepo.net/
# Blog:       http://blog.remirepo.net/
# Forum:      http://forum.remirepo.net/
[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/remi/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/remi/mirror
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
 | 
 
- 执行如下安装命令:
| 1
 | yum --enablerepo=remi install redis
 | 
 
- 创建redis配置文件
| 1
2
 | cd /etc/redis;touch redis6380.conf redis6381.conf;
写入redis配置
 | 
 
- 创建服务启动文件
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 | cd /usr/lib/systemd/system;
touch redis6380.service;
touch redis6381.service;
写入如下内容:
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/redis-server /etc/redis/redis6380.conf --daemonize yes --supervised systemd
ExecStop=/usr/libexec/redis-shutdown redis6380
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
 | 
 
- 修改目录权限
| 1
2
3
4
5
 | chown -R redis:redis /etc/redis;
mkdir -p /var/lib/redis;
mkdir -p /var/log/redis;
chown -R redis:redis /var/lib/redis;
chown -R redis:redis /var/log/redis;
 | 
 
- 启动redis服务
| 1
2
 | systemctl start redis6380;
systemctl start redis6381;
 | 
 
- 开通防火墙,重启防火墙
| 1
2
3
4
5
 | -A RH-Firewall-1-INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 6380  -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 16380 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 6381  -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 16381 -j ACCEPT
systemctl restart iptables #重启防火墙
 | 
 
- 创建集群
| 1
2
3
4
5
 | redis-cli --cluster create \
    192.168.126.21:6380 192.168.126.21:6381 \
    192.168.126.22:6380 192.168.126.22:6381 \
    192.168.126.23:6380 192.168.126.23:6381 \
    --cluster-replicas 1 -a xxxx
 | 
 
- 连接集群
| 1
2
3
 | redis-cli -h 192.168.126.21 -p 6380 -c -a xxxxx 
cluster nodes #查看集群节点信息
cluster info  #查看集群信息
 | 
 
- 增加master节点操作
| 1
2
 | redis-cli --cluster add-node [加入node的ip:port] [被加入的集群的任意node的ip:port] -a xxx
redis-cli --cluster add-node 192.168.126.25:6380 192.168.126.21:6380
 | 
 
- 重新分区slot
| 1
2
 | redis-cli --cluster reshard [集群任意节点IP:port]
redis-cli --cluster reshard 192.168.126.21:6380
 | 
 
- 增加slaver节点操作
| 1
2
 | redis-cli --cluster add-node [待加入节点的ip:port] [集群中的任意节点node的IP:port]  --cluster-slave --cluster-master-id [主节点的id]
redis-cli --cluster add-node 192.168.126.25:6381 192.168.126.21:6380 --cluster-slave --cluster-master-id b01dfefa0b75cf9c04582bdebfe095bff5443c9c
 | 
 
- 移除slave节点
redis-cli --cluster del-node [集群中的任意node:port] [node ID]
redis-cli --cluster del-node 192.168.126.21:6380 f98ac1bcc47e90f9b0b9df104750ba07eb3b609c
- 移除master节点,要先移除master节点上吗的slot和数据,进行reshard操作
redis-cli --cluster del-node [集群中的任意node:port] [node ID]
redis-cli --cluster del-node 192.168.126.21:6380 3290302920329320103923902390230920920fdab
- 创建redis用户和组
| 1
 | groupadd redis;useradd -d /var/lib/redis -c "Redis Database Server" -g redis redis -s /sbin/nologin 
 | 
 
三、redis常用配置说明
参考资料
centos7安装redis6.2.6
Remi源
centos7源码编译安装redis6.2.6
Redis 6.2.6 Cluster搭建过程
部署Redis Cluster 6.0 集群并开启密码认证
| 1
2
3
4
5
 | 安装最新版的 redis ,需要安装Remi的软件源,
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=remi install redis(过程中输入 y)#安装redis
输入 systemctl status redis 查看 redis 状态
输入 systemctl start redis 启动 redis ,并且执行 systemctl status redis
 |