Redis集群架构搭建——主从、哨兵、集群

上一篇文章Ubuntu上通过源码方式安装Redis已经介绍了如何安装redis,在这篇文章中,将会教大家搭建Redis的几种高可用的架构:主从架构、哨兵集群、Cluster集群。

本篇文章使用的redis版本为6.2.13,不同版本的配置可能有略微的区别,比如replicaof/slaveof。

因为设备有限,只能在一台Ubuntu虚拟机上通过不同端口启动多个redis服务,

 注意,启动redis的命令不要直接复制,否则可能会提示“没有那个文件或目录”,自己手敲的命令就可以正常执行(血的教训)。

Redis集群架构搭建——主从、哨兵、集群_第1张图片

目录

一、搭建主从架构

搭建主节点

复制配置文件

修改配置文件

启动主节点

搭建从节点

复制配置文件

修改配置文件 

启动从节点

二、搭建哨兵集群架构

增加一个从节点

搭建哨兵节点

复制sentinel.conf

修改设置

启动哨兵节点

查看集群信息

测试哨兵选主

三、搭建高可用集群架构


一、搭建主从架构

主从架构的redis集群模式最低配置是一个master一个slave,所以要启动两个redis服务。

搭建主节点

复制配置文件

切换到redis安装目录,复制一份配置文件

cp redis.conf redis_6379.conf

如下图所示:

Redis集群架构搭建——主从、哨兵、集群_第2张图片

修改配置文件

修改一下redis_6379.conf,通过Ctrl+F搜索并修改以下配置。

# bind 127.0.0.1 -::1

protected-mode no

# 设置启动端口号
port 6379

# 设置后台启动
daemonize yes

# 进程ID保存的文件
pidfile /var/run/redis_6379.pid

# 设置日志文件名
logfile "redis_6379.log"

启动主节点

按照上一步修改完redis_6379.config之后,通过下面的命令启动redis

./src/redis-server redis_6379.conf

如图,查看日志文件,redis成功启动了

Redis集群架构搭建——主从、哨兵、集群_第3张图片

搭建从节点

复制配置文件

切换到redis安装目录,复制一份配置文件,直接复制之前的6379文件,懒得重复修改一些设置。

cp redis_6379.conf redis_6389.conf

修改配置文件 

修改一下redis_6389.conf,通过Ctrl+F搜索并修改以下配置。

# 设置启动端口号
port 6389

# 从节点只能处理读操作,当前版本redis默认开启的配置
replica-read-only yes

# 配置redis主节点ip地址和端口号
replicaof 192.168.254.128 6379

# 进程ID保存的文件
pidfile /var/run/redis_6389.pid

# 保存数据的文件地址
dir /usr/local/redis/6389/data

# 日志文件的文件名
logfile "/usr/local/redis/6389/logs/redis_6389.log"

注意:为了避免文件找不到问题,需要先在/usr/local下创建对应的目录

/redis/6389/data

/redis/6389/logs

启动从节点

通过以下命令启动从节点

./src/redis‐server redis_6389.conf

如下图,slave节点成功启动,并从主节点6379同步了数据。

Redis集群架构搭建——主从、哨兵、集群_第4张图片

然后在主节点设置几个key,看一下是否会同步到从节点:

通过redis-cli命令连接主节点(默认连接的是端口号是6379的redis节点),可以通过-p指定端口号。第一次使用redis-cli可能会提示安装redis-tools,复制命令回车即可。

Redis集群架构搭建——主从、哨兵、集群_第5张图片

设置一个name

Redis集群架构搭建——主从、哨兵、集群_第6张图片

从节点上获取name

Redis集群架构搭建——主从、哨兵、集群_第7张图片

至此,redis主从架构的搭建就圆满完成了。

二、搭建哨兵集群架构

哨兵集群架构其实就是在主从架构的基础上,引入了哨兵节点,哨兵不处理客户端的读写请求,之负责监控主节点和从节点,当发现主节点挂了,会重新选举一个主节点,选举主节点的过程是通过多个哨兵投票得到的,只有超过半数的哨兵同意选举才能成立,所以哨兵的数量要设置成奇数,防止平票重新选举的情况发生。因此,哨兵集群架构最少要有3个哨兵节点。

增加一个从节点

在第一节主从架构的基础上,再搭建一个redis节点6399。

从6389节点复制一份配置文件

cp redis_6389.conf redis_6399.conf

然后修改下面这些配置就可以了(能偷懒就偷懒ovo)

port 6399

pidfile /var/run/redis_6399.pid

logfile "/usr/local/redis/6399/logs/redis_6399.log"

dir /usr/local/redis/6399/data

然后输入命令启动

./src/redis‐server redis_6399.conf

同样的,它会从主节点6379同步数据。

Redis集群架构搭建——主从、哨兵、集群_第8张图片

搭建哨兵节点

复制sentinel.conf

cp sentinel.conf sentinel_6380.conf 

修改设置

port 6380

daemonize yes

logfile "/usr/local/redis/6380/logs/redis_6380.log"

dir /usr/local/redis/6380/data

pidfile /var/run/redis_6380.pid

# 配置主节点ip和端口号,最后一个2表示当哨兵节点中两个通过选举结果时,才设置候选节点为master
# 一般设置成哨兵节点数/2 + 1
sentinel monitor mymaster 192.168.254.128 6379 2

然后按照类似的方法创建两个哨兵节点6390和6400

复制

cp sentinel_6380.conf sentinel_6390.conf

替换6380为6390,然后同理创建6400

Redis集群架构搭建——主从、哨兵、集群_第9张图片

启动哨兵节点

src/redis-sentinel sentinel_6380.conf

src/redis-sentinel sentinel_6390.conf

src/redis-sentinel sentinel_6400.conf

启动完成后,点击任意一个配置文件,发现文件末尾多了一段内容。

Redis集群架构搭建——主从、哨兵、集群_第10张图片

查看集群信息

连接6400端口的哨兵节点,通过redis的info命令查看到整个集群的信息

redis-cli -p 6400

info

Redis集群架构搭建——主从、哨兵、集群_第11张图片

测试哨兵选主

通过kill命令杀死redis主节点,看一下能否完成新的master选举。

Redis集群架构搭建——主从、哨兵、集群_第12张图片

如上图,主节点已经下线了,连接其他两个从节点中任意一个,例如,连接6389

发现6389被设置成了主节点

至此,redis的哨兵集群架构也搭建完成了。

三、搭建高可用集群架构

你可能感兴趣的:(redis,架构,java)