Linux企业运维——Redis的安装部署及主从复制、master自动切换,redis、mysql读写分离

本文详细介绍了Linux系统中Redis的安装部署、主从复制配置,包括手动和哨兵自动切换,以及Redis集群搭建和主从自动切换。此外,还探讨了Redis与MySQL的读写分离实现,利用Gearman确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Redis是什么

Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:

基于内存运行,性能高效
支持分布式,理论上可以无限扩展
key-value存储系统
开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

相比于其他数据库类型,Redis具备的特点是:

C/S通讯模型
单进程单线程模型
丰富的数据类型
操作具有原子性
持久化
高并发读写
支持lua脚本

二、redis的安装部署

server1配置redis

下载 redis-6.2.4.tar.gz 压缩包,解压安装

lftp 172.25.254.250
cd /pub/docs/redis
get redis-6.2.4.tar.gz
tar zxf  redis-6.2.4.tar.gz
cd redis-6.2.4
make  #测试安装,根据报错缺少什么安装什么
make的时候如果报错下载需要的依赖性插件后需要删除压缩包重新解压安装,否则会有之前的缓存
make install    #安装
cd utils   
vim install_server.sh   #修改安装脚本,注释调脚本关于systemd的if语句,否则执行此脚本汇报错
./install_server.sh   #执行脚本,根据交互界面一直回车即可

vim install_server.sh
在这里插入图片描述

脚本执行成功界面,安装成功
在这里插入图片描述

安装成功,可以通过绝对路径启动服务

vim /etc/redis/6379.conf   #编辑配置文件,注释回环接口,关闭保护模式
/etc/init.d/redis_6379 stop   #停止
/etc/init.d/redis_6379 start  #启动数据库
redis-cli   #进入redis数据库
set name westos    #建立数据
get name   #得到数据

/etc/redis/6379.conf
在这里插入图片描述

在这里插入图片描述

启动进入redis数据库
在这里插入图片描述

查看开放端口
netstat -antlp|grep :6379

在这里插入图片描述

server2配置redis

下载编译安装

scp -r redis-6.2.4.tar.gz server2:   #server1直接将解压好的mulu 传输给server2
因为redis是c语言开发的,所以需要下载gcc进行安装编译
yum install -y gcc    #下载gcc
yum install -y systemd-devel  
vim README.md      #查看使用手册,可以发现如果服务需要用刀systemd,make时需要添加参数USE_SYSTEMD=yes
make USE_SYSTEMD=yes           #redis使用systemd守护进程
make install   #安装
./install_server.sh
vim /etc/redis/6379.conf

README.md
在这里插入图片描述

安装完成——如下图!!
在这里插入图片描述

编辑相关配置文件

cd redis-6.2.4/
cd utils   
cp systemd-redis_server.service /usr/lib/systemd/system/redis.service
cd /usr/lib/systemd/system

vim redis.service
\\\
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
Type=forking
\\\

redis-server    #查看redis数据库信息
cd /root/redis-6.2.4
mkdir /etc/redis
cp redis.conf /etc/redis/

vim /etc/redis/redis.conf   #编辑主配置文件
\\\
75 #bind 127.0.0.1 -::1             #注释本机连接,即允许其他株距连接redis
94 protected-mode no                #yes改为no,关闭保护模式
257 daemonize yes                   #no改为yes,以守护进程的方式运行
302 logfile "/var/log/redis.log"    #logfile日志文件存放路径
454 dir /var/lib/redis              #文件路径
\\\

mkdir /var/lib/redis                #建立配置文件所编辑的相应路径下的目录
systemctl daemon-reload             #重载
systemctl start redis.service       #systemctl开启服务 

修改service文件,除了ExecStart和Type=forking这两行,其他都注释

在这里插入图片描述

redis-server #查看redis数据库信息

在这里插入图片描述

vim /etc/redis/redis.conf #编辑主配置文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

server3配置redis

server3的redis配置和server1相同

scp -r redis-6.2.4 server3:     #在server1将解压国的redis目录拷贝过来即可
由于目录已经make安装测试过的,所以这里可以直接安装make install(也可以传输压缩包到server2,然后按照server1的流程安装即可)
因为redis是c语言开发的,所以需要下载gcc进行安装编译
yum install -y gcc    #下载gcc
cd redis-6.2.4/
make install
cd utils/
./install_server.sh
/etc/init.d/redis_6379 start   #开启redis

vim /etc/redis/6379.conf
\\\
#bind 127.0.0.1 -::1
protected-mode no
\\\

三、redis主从复制

设置redis一主两从,server1为master,server2、server3为slave
分别在/etc/redis/redis.conf中编辑加入master信息即可

在server2中
vim /etc/redis/redis.conf
在最后一行添加master信息
slaveof 172.25.7.1 6379 (当前主机为172.25.7.1,从机端口为6379)

在server3中
vim /etc/redis/6379.conf
在这里插入图片描述
此时,主从配置完毕

在server1中,进入redis
info 查看master状态信息

在这里插入图片描述

set name    #插入数据
get name    #查看
此时在主库中插入数据,从库中可以get查到

在这里插入图片描述

在从库中可以get到信息
在这里插入图片描述

四、Sentine主从自动切换

使用哨兵模式,自动监视Master节点,当前挂掉后,自动将Slaver节点变为Master节点

Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中。sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。

sentinel可以让redis实现主从复制,当一个集群中的master失效之后,sentinel可以选举出一个新的master用于自动接替master的工作,集群中的其他redis服务器自动指向新的master同步数据。一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换。

原理:
一主两从的情况下,当master与两个slave或因网络关系断掉的情况下,客户端并不知道master失联,会持续写入数据,但此时slave端已经不能复制数据。
如果需要解决此问题,则需要两个slave同时认定不能连接master,或者,超过设定时间不能连接,则此时master端会拒绝客户端继续写入,那么重新接入变成slave时就不会造成数据丢失。

故障转移

选取领头的sentinel,然后对故障进行转移

在下线服务器的从服务器中挑选一个作为新的主服务器
已下线的服务器下的其他从服务器复制新的主服务器
已下线的主服务器再上线的时候会作为新服务器的从服务器0.

1.配置sentinel文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值