Redis主从,读写分离、哨兵、集群搭建详解

在这里插入图片描述在这里插入图片描述
因为热爱所以坚持,因为热爱所以等待。熬过漫长无戏可演的日子,终于换来了人生的春天,共勉!!!

Redis主从,读写分离、哨兵、集群搭建详解

1.Redis主从搭建

概述:
Redis主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布 记录。同步对读取操作的可扩展性和数据冗余很有帮助。

于目前redis主从的搭建,主流的都是主机读写从机只读,我们这次搭建也按照这种模式来,如图下所示进行搭建
在这里插入图片描述
搭建步骤:
(1) 我们先在linux的opt目录下创建几个目录,作为统一存放相关文件的地方

[root@qzk052 etc]# mkdir -p /opt/redis/data   #存放redis数据的地方
[root@qzk052 etc]# mkdir -p /opt/redis/log    #存放日志的地方
[root@qzk052 etc]# mkdir -p /opt/redis/conf   #存放配置的地方

在这里插入图片描述

(2) 将redis.conf拷贝一份放到 /opt/redis/conf/ 目录下,同时改名为redis-common.conf作为公共配置

[root@qzk052 etc]# cp redis.conf /opt/redis/conf/
[root@qzk052 etc]# cd /opt/redis/conf/
[root@qzk052 conf]# ls
redis.conf
[root@qzk052 conf]# vim redis.conf 
[root@qzk052 conf]# mv redis.conf redis-common.conf 

同时我们要公共配置做一些更改:

  1. 把端口号配置注释掉
    在这里插入图片描述

  2. 关掉保护模式
    在这里插入图片描述

  3. 注释掉ip绑定
    在这里插入图片描述

  4. 注释掉端口启动文件

    在这里插入图片描述

  5. 设置后台启动
    在这里插入图片描述

  6. 注释掉日志文件
    在这里插入图片描述

  7. 开启RDB持久化
    在这里插入图片描述

  8. 设置数据存储的地方(开头我们创建的目录)
    在这里插入图片描述

  9. 设置密码
    在这里插入图片描述

  10. 设置主从验证密码
    在这里插入图片描述
    完成这些公共配置后我们继续下一步!

(3) 创建三份redis配置

[root@qzk052 conf]# touch redis-6379.conf
[root@qzk052 conf]# touch redis-6380.conf
[root@qzk052 conf]# touch redis-6381.conf

在这里插入图片描述
每一份配置copy下面代码,按照端口号稍微修改一下即可,从机要指定配置主机的地址及端口号

#引入公共配置
include /opt/redis/conf/redis-common.conf
#进程编号记录文件
pidfile /var/run/redis-6379.pid
#进程端口号
port 6379
#日志记录文件
logfile "/opt/redis/log/redis-6379.log"
#数据记录文件
dbfilename dump-6379.rdb
#追加文件名称
appendfilename "appendonly-6379.aof"
#下面的配置无需在6379里配置
#备份服务器从属于6379推荐配置局域网ip
#slaveof 106.12.147.77 6379

(4) 每一份配置启动对应一个redis服务

[root@qzk052 opt]# cd /usr/local/redis-6.2.6/bin
[root@qzk052 bin]# ls
backup.db  mkreleasehdr.sh  redis-check-aof  redis-server
dump.rdb   redis-benchmark  redis-cli
[root@qzk052 bin]# ./redis-server /opt/redis/conf/redis-6379.conf 
[root@qzk052 bin]# ./redis-server /opt/redis/conf/redis-6380.conf 
[root@qzk052 bin]# ./redis-server /opt/redis/conf/redis-6381.conf 

在这里插入图片描述
(5)最后一步,检验配置是否成功
我们多开几个连接测试一下,登录客户端,输入info replication查看主从信息

  1. 从主机信息我们可以看到,目前连接了两台从机,成功!!!
[root@qzk052 ~]# cd /usr/local/redis-6.2.6/bin/
[root@qzk052 bin]# ./redis-cli -p 6379 -a root
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> info replication

在这里插入图片描述

  1. 从机
[root@qzk052 ~]# cd /usr/local/redis-6.2.6/bin/
[root@qzk052 bin]# [root@qzk052 bin]# ./redis-cli -p 6379 -a root
-bash: [root@qzk052: command not found
[root@qzk052 bin]#  ./redis-cli -p 6381 -a root
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6381> info replication

在这里插入图片描述
测试一下:
我们在主机写一个k-v
在这里插入图片描述
从机读取

在这里插入图片描述
成功!!!

2.哨兵模式高可用

概述:
Redis的主从复制下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多应用场景这种故障处理的方法是无法接受的。但是Redis从2.8开始正式提供了Redis Sentinel(哨兵)架构来解决这个问题。

Redis Sentinel是一个分布式架构,其中包含若干个Sentinel节点和Redis数据节点,每个Sentinel节点会对数据节点和其余Sentinel节点进行监控,当它发现节点不可达时,会对节点做下线标识。如果被标识的是主节点,它还会和其他Sentinel节点进行“协商”,当大多数Sentinel节点都认为主节点不可达时,它们会选举出一个Sentinel节点来完成自动故障转移的工作,同时会将这个变化通知给Redis应用方。整个过程完全是自动的,不需要人工来介入,所以这套方案很有效地解决了Redis的高可用问题。

创建公共配置

[root@qzk052 redis-6.2.6]# cp sentinel.conf /opt/redis/conf/
[root@qzk052 redis-6.2.6]# cd  /opt/redis/conf/
[root@qzk052 conf]# mv sentinel.conf sentinel-common.conf
[root@qzk052 conf]# vim sentinel-common.conf
  1. 注释掉端口号
    在这里插入图片描述

  2. 开启后台启动
    在这里插入图片描述

  3. 注释掉进程启动文件

  4. 注释掉日志文件
    在这里插入图片描述

  5. 改为你的ip
    在这里插入图片描述

  6. 设置主从验证密码
    在这里插入图片描述

哨兵配置

[root@qzk052 conf]# vim sentinel-26379.conf 
[root@qzk052 conf]# vim sentinel-26380.conf 
[root@qzk052 conf]# vim sentinel-26381.conf 
#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26379
#进程编号记录文件
pidfile /var/run/sentinel-26379.pid
#日志记录文件(为了方便看日志,先注释掉,搭建好再打开)
logfile "/opt/redis/log/sentinel-26379.log"

启动哨兵

[root@qzk052 bin]# redis-sentinel /opt/redis/conf/sentinel-26379.conf
[root@qzk052 bin]# redis-sentinel /opt/redis/conf/sentinel-26380.conf 
[root@qzk052 bin]# redis-sentinel /opt/redis/conf/sentinel-26381.conf 

在这里插入图片描述
完成!!!

3.Redis集群

后续。。。
在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43295483/article/details/123592528