记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0

Redis集群需要至少要三个master节点,因为选举模式,节点数必须是基数
所以:

  • 1个master-1个slave,redis集群需要6个节点

  • 1个master-2个slave,redis集群需要9个节点,以此类推。


这里搭建三个master节点,并且给每个master再搭建一个 slave , 共6个redis节点,3主3从
由于节点数较多,这里采用在一台机器上创建6个redis实例做演示
所以这里搭建的是伪集群模式:


1.环境准备工作


2.创建集群存储目录

父目录如果没有创建请先创建父目录:mkdir /usr/local/software

mkdir /usr/local/software/redis-cluster
cd /usr/local/software/redis-cluster
#因为是伪集群,创建6个文件夹分别是8001~6,
对应6个redis的端口mkdir 8001 8002 8003 8004 8005 8006


3.复制并配置redis.conf

3.1 复制redis.conf 文件

cp /usr/local/software/redis/conf/redis.conf /usr/local/software/redis-cluster/80011

3.2 复制完毕后修改如下内容

配置 含义
daemonize yes 后台启动
port 8001 分别对应每个机器的端口号
bind 192.168.0.101 必须绑定当前机器IP,方便redis集群定位机器,未绑定可能会出现循环查找集群节点的问题
dir /usr/local/software/redis-cluster/8001 指定数据文件存储位置,必须指定不同的位置,防止丢失或覆盖
cluster-enabled yes 启动集群模式
cluster-config-file nodes-8001.conf 建议与端口对应,方便区分
cluster-node-timeout 5000 节点超时时间,5秒
appendonly yes 打开 aof持久化



如果要设置密码需要如下配置:
requirepass xxx 设置redis访问密码
masterauth xxx 设置集群节点间访问密码,requirepass一致


3.3 复制配置好的redis.conf 到不同的文件夹下,并修改对应的端口
示例:复制 8001 配置文件到 8002 下
注意 :复制完需要改端口

cp /usr/local/software/redis-cluster/8001/redis.conf ../8002/

注 : linux批量替换命令

:%s/源字符串/目标字符串/g


4.分别启动6个Redis实例

# 示例 8001 的启动,替换端口一次启动 
/usr/local/software/redis/bin/redis-server /usr/local/software/redis-cluster/8001/redis.conf12


4.安装Ruby

注:Redis集群从5.0.0开始不在需要安装ruby**
Redis5之前集群需要用到Ruby脚本 ,安装详见 安装ruby :传送门 (2.1~2.6)
**

5.安装Redis

注意:如果安装出现错误,请参考: 传送门 (3~4)

gem install redis --version 4.0.01


6.启动集群

启动redis集群需要使用 redis-trib.rb 命令

 #切换目录
 cd /usr/local/software/redis/bin/12
# 启动集群
./redis-trib.rb create --replicas 1 172.17.0.2:8001 172.17.0.2:8002 172.17.0.2:8003 172.17.0.2:8004 172.17.0.2:8005 172.17.0.2:800612

分段解释启动命令含义

./redis-trib.rb 启动集群的命令
–replicas 1 数字1 代表主从比例 ,由于要配置的是3主3从 则 比例=master节点数/slave节点数,如果是3主6从那么比例就是0.5
IP:端口 集 会按照设置的比例计算主节点与子节点
一共6台。比例为1 则前3台为主节点,后3台为子节点,按照顺序依次对应
8001(主) - 8004(子)
8002(主) - 8005(子)
8003(主) - 8006(子)

到这里,redis已经搭建完毕了。


7.验证集群

集群模式下连接任意一个客户端即可, 命令 ./redis-cli -c -h xxxIP -p 800*

7.1 连接客户端

/usr/local/software/redis/bin/redis-cli -c -h 172.17.0.2 -p 80011

连接8001设置一个 name 值为zhangsan ,如图所示,自动分片与自动重定向


7.1 查看集群信息

注:必须要在7.1连接任意一个客户端下使用查看集群信息命令

#查看集群节点列表

 cluster nodes1

cluster info1


7.3 验证主挂子升

#查看进程ps -ef|grep redis#手动杀死 8001 进程 kill-9 pidkill -9 1000912345

再次查看集群节点,发现集群已经将 8001标记为 fail,并且8004已经升级为master

将8001再次启动后最新节点列表
原先失败的节点再次启动后,回变更为新master 的slave



8.关闭集群

若需要关闭整个集群,则需要将所有节点全部关闭。



9.撤销集群

#切换到8001目录下

cd /usr/local/software/redis-cluster/80011

如果要撤销或清除集群则需要将
nodes-8001.conf 文件删除




转载请标明出处【Redis4.0高可用集群模式搭建】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论