1、配置信息准备(使用3主6从模式):
ip | master | slave1 | slave2 |
192.168.183.138 | 6381 | 6382 | 6383 |
192.168.183.139 | 6381 | 6382 | 6383 |
192.168.183.140 | 6381 | 6382 | 6383 |
创建文件夹:三台主机分别创建
[root@localhost ~]# mkdir -p /usr/local/src/redis-6.2.4/redis-cluster/6381
[root@localhost ~]# mkdir -p /usr/local/src/redis-6.2.4/redis-cluster/6382
[root@localhost ~]# mkdir -p /usr/local/src/redis-6.2.4/redis-cluster/6383
拷贝配置文件:
将redis安装目录下的redis.conf文件分别拷贝到6381,6832,6383下:
cp /usr/local/src/redis-6.2.4/redis.conf /usr/local/src/redis-6.2.4/redis-cluster/6381
cp /usr/local/src/redis-6.2.4/redis.conf /usr/local/src/redis-6.2.4/redis-cluster/6382
cp /usr/local/src/redis-6.2.4/redis.conf /usr/local/src/redis-6.2.4/redis-cluster/6383
2、修改配置文件
9台redis配置文件根据不同的IP 和端口号,按照下面的格式分别修改配置文件。
192.168.183.138:6381 192.168.183.138:6382 192.168.183.138:6383
192.168.183.139:6381 192.168.183.139:6382 192.168.183.139:6383
192.168.183.140:6381 192.168.183.140:6382 92.168.183.140:6383
port 6381
daemonize yes
pidfile“/var/run/redis_6381.pid"
#指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据
dir "/usr/local/src/redis-6.2.4/redis-cluster/6381/"
#启动集群模式
cluster-enabled yes
#集群节点信息文件,这里800x最好和port对应上
cluster-config-file nodes-6381.conf
#节点离线的超时时间
cluster-node-timeout 5000
bind 192.168.183.138
#关闭保护模式
protected-mode no
#启动AOF文件
appendonly yes
#如果要设置密码需要增加如下配置:
#设置redis访问密码
#requirepass xxxx
#设置集群节点间访问密码,跟上面一致#masterauth xxx
3、配置完成后启动分别redis
建议:配置完成一个,启动一个。若启动失败,可以及时处理。
确定9个redis全部启动
4、搭建集群
redis-cli -a xxx --cluster create --cluster-replicas 2 192.168.183.138:6381 192.168.183.138:6382 192.168.183.138:6383 192.168.183.139:6381 192.168.183.139:6382 192.168.183.139:6383 192.168.183.140:6381 192.168.183.140:6382 192.168.183.140:6383
参数:
-a:密码
--cluster-replicas 1: 表示一个master下挂1个slave
--cluster-replicas 2: 表示一个master下挂2个slave
出现上面的内容表示集群搭建成功。
5、登陆客户端查看集群状态
参数:
-a表示服务端密码 -c表示是集群模式 -h指定ip -p表示端口号
随便登陆9台中任何一台redis;
cluster info查看显示9台redis都加入集群
cluster nodes查看各个redis的属性
图中myself,master是集群随机选择的一台主master。
6、验证集群效果
集群会随机选择一个master写入数据,而且会有根据内部算法自动切换主节点
读取也会变化
7、开机自启动
根据不同的端口号命名redis启动程序。9台redis都需要配置
[root@localhost ~]# vi /etc/systemd/system/redis-6381.service
[Unit]
# 描述服务
Description=redis-server
# 描述服务类别
After=network.target
# 服务运行参数的设置
[Service]
# 后台运行的形式
Type=forking
# 服务的具体运行命令,服务的启动、重启、停止命令全部要求使用绝对路径且正确
# ExecReload为重启命令,ExecStop为停止命令
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.4/redis-cluster/6382/redis6382.conf
# 表示给服务分配独立的临时空间
PrivateTmp=true
# 运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
[Install]
WantedBy=multi-user.target
每台redis都设置开机自启动。
8. 集群模式优缺点:
Redis集群模式用于在多个Redis节点之间分配数据,提供高可用性和水平扩展。它适用于大规模应用。
优点:1、高可用性和可扩展性。2、数据分片和负载均衡。
缺点:1、配置和管理复杂。2、需要多个节点。