IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> NoSQL之Redis:高可用(主从复制、哨兵、集群)搭建 -> 正文阅读

[大数据]NoSQL之Redis:高可用(主从复制、哨兵、集群)搭建

目录

一、Redis主从复制的搭建

1、环境准备

2、所有安装redis

?3、修改Master节点

?4、修改slave节点Redis配置文件(slave1和slave2配置相同)

?5、验证主从效果

在master节点上看日志

?在Master节点上验证从节点

?主节点创建数据验证

?二、哨兵模式的部署

1、修改Redis 哨兵模式的配置文件(所有节点操作)

?2、启动哨兵模式

?3、查看哨兵信息

?4、故障模拟

?5、恢复过程

6、小结

三、Redis集群模式部署


一、Redis主从复制的搭建

1、环境准备

master节点:192.168.127.130
slave1节点:192.168.127.140
slave2节点:192.168.127.188

2、所有安装redis

一键部署redis脚本


#!/bin/bash
 
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
 
#安装环境
yum -y install gcc gcc-c++ make
 
#解压
cd /opt
tar -zxvf redis-5.0.7.tar.gz
 
#编译
cd /opt/redis-5.0.7/
make 
make PREFIX=/usr/local/redis install
 
#安装redis服务
cd /opt/redis-5.0.7/utils
 
yum -y install expect
/usr/bin/expect <<EOF
spawn ./install_server.sh
expect "instance" {send "\r"}
expect "config" {send "\r"}
expect "log" {send "\r"}
expect "this" {send "\r"}
expect "path" {send "/usr/local/redis/bin/redis-server\r"}
expect "abort" {send "\r"}
expect eof
EOF
 
#创建软链接,方便启动
ln -s /usr/local/redis/bin/* /usr/local/bin
 
#修改配置文件
ip=`ifconfig ens33 |awk '/netmask/{print $2}'`
sed -i "s/bind 127.0.0.1/bind 127.0.0.1 $ip/"  /etc/redis/6379.conf
 
#启动redis
/etc/init.d/redis_6379 restart
 
#查看是否开启
netstat -natp |grep redis
if [ $? -eq 0 ];then
echo "redis 已安装完成并启动"
else
echo "redis 未启动,请检查"
fi

?

?3、修改Master节点

?

vim /etc/redis/6379.conf
bind 0.0.0.0						#70行,修改bind 项,0.0.0.0监听所有网段
daemonize yes						#137行,开启守护进程
logfile /var/log/redis_6379.log		#172行,指定日志文件目录
dir /var/lib/redis/6379				#264行,指定工作目录
appendonly yes						#700行,开启AOF持久化功能
 
/etc/init.d/redis_6379 restart

?4、修改slave节点Redis配置文件(slave1和slave2配置相同)


vim /etc/redis/6379.conf    #配置文件位置
70 bind 0.0.0.0    #修改监听地址
137 daemonize yes  #开启守护进程
172 logfile /var/log/redis_6379.log  #指定日志文件目录
264 dir /var/lib/redis/6379   #指定工作目录
288 replicaof 192.168.127.130 6379  #添加主服务器地址 及端口
700 appendonly yes   #开启AOF持久化功能
#保存,并启动服务
 
 
/etc/init.d/redis_6379 restart
#重启slave1节点和slave2节点redis服务

?

?

?5、验证主从效果


#在Master节点上看日志:
tail -f /var/log/redis_6379.log
 
#在Master节点上验证从节点:
redis-cli
127.0.0.1:6379> info replication
 
#创建数据验证
##在master创建数据
set yyh nb
 
##在从节点上查看
get yyh

在master节点上看日志

?在Master节点上验证从节点

?主节点创建数据验证

?二、哨兵模式的部署

哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式

1、修改Redis 哨兵模式的配置文件(所有节点操作)

#所有节点配置一样,如下所示
vim /opt/redis-5.0.7/sentinel.conf
 17 protected-mode no      #关闭保护模式
 21 port 26379             #Redis哨兵默认的监听端口
 26 daemonize yes		   #指定sentinel为后台启动
 36 logfile "/var/log/sentinel.log"  #指定日志存放路径
 65 dir "/var/lib/redis/6379"        #指定数据库存放路径
 84 sentinel monitor mymaster 192.168.127.130 6379 2  #指定该哨兵节点监控192.168.62.50:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移
113 sentinel down-after-milliseconds mymaster 30000  #判定服务器down掉的时间周期,默认30000毫秒(30秒)
146 sentinel failover-timeout mymaster 180000        #146行,故障节点的最大超时时间为180000 (180秒 )

?

?2、启动哨兵模式

每个节点都要开启,先启动master,然后启动slave

#注意:先启master,再启slave
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &

?3、查看哨兵信息

redis-cli -p 26379 info sentinel

?4、故障模拟

查看并杀死master节点的redis-server

?再次查看哨兵信息

?

?5、恢复过程

如果要将以前的master的redis启动,需要先将/var/run/redis_6379.pid文件删除,删除执行在执行/etc/init.d/redis_6379 start ,即可启动redis服务,启动之后,哨兵会将它设置为salve从节点,并自动指向新的节点。

最好再去配置文件中去指向主从复制的master,也就是将重新启动的master的配置文件/etc/redis/6379.conf 中的 288行重新指向新的master。

6、小结

  • 哨兵模式基于主从复制,但主从复制在单点故障后无法自动恢复,导致服务无法实现高可用性;
  • 哨兵模式基于主从复制基础之上,添加哨兵节点检测
  • 当master宕机后,哨兵节点会通过投票选举方式,选举出新的master服务,保证服务的高可用性

三、Redis集群模式部署

Redis集群一般需要6个节点,三主三从。

本次实验使用一台设备模拟三主三从。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:48:45  更:2022-10-08 20:49:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:48:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码