千家信息网

下redis的持久化、主从同步与哨兵的示例分析

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍了下redis的持久化、主从同步与哨兵的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.0 redis持久化
千家信息网最后更新 2025年01月19日下redis的持久化、主从同步与哨兵的示例分析

这篇文章主要介绍了下redis的持久化、主从同步与哨兵的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1.0 redis持久化

Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失。

1|1RDB持久化

redis提供了RDB持久化的功能,在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)这个功能可以将redis在内存中的的状态保存到硬盘中,RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件被保存在硬盘中,redis可以通过这个文件还原数据库当时的状态。

它可以手动执行。

也可以在redis.conf中配置,定期执行。

优点:速度快,适合做备份,主从复制就是基于RDB持久化功能实现

rdb通过在redis中使用save命令触发 rdb

rdb配置参数:

port 6379 daemonize yes pidfile /data/6379/redis.pidloglevel notice logfile "/data/6379/redis.log"dir /data/6379 protected-mode yes dbfilename dbmp.rdbsave 900 1save 300 10 save 60 10000

每过900秒 有1个操作就进行持久化

save 900秒 1个修改类的操作

save 300秒 10个操作

save 60秒 10000个操作

2.触发rdb持久化,也可以手动save命令即可,生成 dump.rdb持久化文件

3.重启redis,数据不再丢失

4.rdb数据文件是二进制文件,人为的看不懂

1|2redis持久化之AOF

AOF(append-only log file)

记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集

AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。

优点:最大程序保证数据不丢

缺点:日志记录非常大

配置方式

1.在配置文件中,添加aof参数

在redis-6379.conf中添加参数,开启aof功能

appendonly yesappendfsync everysec

2.重启redis数据库,加载aof功能

3.检查redis数据目录/data/6379/是否产生了aof文件

[root@web02 6379]# lsappendonly.aof dbmp.rdb redis.log

4.登录redis-cli,写入数据,实时监听aof文件信息

tail -f appendonly.aof

5.设置新key,检查aof信息,然后关闭redis,检查数据是否持久化

redis-cli -a redhat shutdownredis-server /etc/redis.confredis-cli -a redhat

在不重启redis的情况下,切换rdb数据到aof数据中

1.配置redis支持rdb持久化

2.启动redis客户端,通过命令,临时切换到aof模式

127.0.0.1:6379> CONFIG set appendonly yesOK127.0.0.1:6379> CONFIG SET save ""OK

3.检查此时的数据持久化方式是rdb,还是aof,检查appendonly.aof文件,数据变动

tail -f appendonly.aof

4.此时aof还未永久生效,写入参数到配置文件

编辑redis-6379.conf 添加如下参数

appendonly yes
appendfsync everysec

2|0主从同步

redis主从同步实现

1.准备三个redis数据库,redis支持多实例

三个配置文件,仅仅是端口的不同

在三个配置文件中,添加主从同步的参数

redis-6379.conf

port 6379 daemonize yes pidfile /data/6379/redis.pidloglevel notice logfile "/data/6379/redis.log"dir /data/6379 protected-mode yes dbfilename dbmp.rdbsave 900 1save 300 10 save 60 10000

redis-6380.conf

port 6380 daemonize yes pidfile /data/6380/redis.pidloglevel notice logfile "/data/6380/redis.log"dir /data/6380 protected-mode yes dbfilename dbmp.rdbsave 900 1save 300 10 save 60 10000slaveof 127.0.0.1 6379

redis-6381.conf

port 6381 daemonize yes pidfile /data/6381/redis.pidloglevel notice logfile "/data/6381/redis.log"dir /data/6381 protected-mode yes dbfilename dbmp.rdbsave 900 1save 300 10 save 60 10000slaveof 127.0.0.1 6379

2.启动三个数据库实例,查看主从同步身份

redis-cli -p 6379 info replication redis-cli -p 6380 info replication redis-cli -p 6381 info replication

3:确保查看信息如下 并且检查是否同步

4.如果我主库挂了怎么办??

解决方案:

1.手动切换主从身份,选举一个新的主库

1.干掉6379主库
2.在6380上关闭自己的slave身份
slaveof no one
3.在6381上给与新的主人身份
salveof 127.0.0.1 6380
4.修改完毕,还得修改配置文件,永久生效

2,用哨兵自动选举新主人

2|1redis哨兵:

哨兵功能:

  哨兵进行检测,主从架构是否正常,如果主库挂掉,哨兵会自动的修改redis.conf,进行添加/删除 slaveof 指令

redis哨兵安装配置:

1.准备三个redis实例,一主两从

详见上面redis主从配置

2,准备好了三个数据库实例,启动三个数据库实例

redis-server redis-6379.confredis-server redis-6380.confredis-server redis-6381.conf

3,准备三个哨兵,开始监控主从架构

准备三个配置文件,哨兵文件

redis-26379.conf

port 26379 dir /var/redis/data/logfile "26379.log"sentinel monitor sbmaster 127.0.0.1 6379 2sentinel down-after-milliseconds qsmaster 30000sentinel parallel-syncs sbmaster 1sentinel failover-timeout sbmaster 180000daemonize yes

redis-26380.conf

port 26380 dir /var/redis/data/logfile "26380.log"sentinel monitor sbmaster 127.0.0.1 6379 2sentinel down-after-milliseconds qsmaster 30000sentinel parallel-syncs sbmaster 1sentinel failover-timeout sbmaster 180000daemonize yes

redis-26381.conf

port 26381 dir /var/redis/data/logfile "26381.log"sentinel monitor sbmaster 127.0.0.1 6379 2sentinel down-after-milliseconds sbmaster 30000sentinel parallel-syncs sbmaster 1sentinel failover-timeout sbmaster 180000daemonize yes

4,启动三个哨兵实例

redis-sentinel redis-26380.conf redis-sentinel redis-26379.conf redis-sentinel redis-26381.conf

检查哨兵状态是否正常

只有发现如下信息,与下面一致,即为正常

redis-cli -p 26379 info sentinel

# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=sbmaster,status=ok,address=127.0.0.1:6380,slaves=2,sentinels=3

5,进行哨兵自动主从切换

1.干掉6379的redis数据库

2.查看6380和6381的身份信息,是否自动的进行主从切换(需等待30秒才会切换)

3.手动启动6379挂掉的数据库,查看是否会被哨兵,添加进信息的主从集群

注意!!如果发现不成功,需删掉所有的哨兵配置文件,从新来过
注意!!如果发现不成功,需删掉所有的哨兵配置文件,从新来过
注意!!如果发现不成功,需删掉所有的哨兵配置文件,从新来过

感谢你能够认真阅读完这篇文章,希望小编分享的"下redis的持久化、主从同步与哨兵的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

数据 文件 哨兵 配置 主从 三个 数据库 同步 命令 检查 信息 功能 参数 实例 切换 身份 准备 手动 篇文章 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 无锡网络安全知识 惠普服务器论坛 松江区管理软件开发包括什么 福建网络技术咨询制品价格 网络技术宣传的企业代码 如何防止网络安全的形成 软件开发过程涉及的库 火币天下网络技术解散 云计算服务器价格 千与千寻下载软件开发 有限元软件开发 知乎 长春打车用什么软件开发 工业企业数据库分享 服务器需要配置机柜吗 自然资源三维立体时空数据库运用 杨浦区智能软件开发厂家现货 网络服务器的安全隐患 制约网络安全 一流专业网络安全与执法 教师面临怎样的网络安全 北京网络安全大会成绩 安徽数据库安全箱生产厂家 深圳工控软件开发要多少钱 政府机构资源数据库表 电子商务网络安全解决措施 云服务器设置多大合适 杨浦区智能软件开发厂家现货 四川宜宾绿盟电商总部网络安全 吉林高性能服务器如何选择 常用的数据库设计工具
0