Redis持久化、主从复制
[TOC]
- redis持久化 RDB & AOP
- redis主从同步策略
一、persistence 持久化:RDB & AOF
offical redis persistence introduction
集群的时候可以在主服务器禁用持久化(禁用所有save配置)
1.1 RDB persistence(Snapshot二进制文件快照)
默认方式,RDB持久化是在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
存储默认文件为dump.rdb。
- 优点:(1)文件备份只有一个文件,容易查找恢复。(2)灾难恢复效率高。
- 缺点:(1)如果在定时持久化前出现宕机,数据将丢失;(2)RDB是通过fork子进程来协助完成持久化,如果数据集较大会导致服务器短时间内停止服务
1.1.1 RDB 持久化策略 save <seconds> <changes>
RDB persistence 的配置,保存策略 秒数 变化条数,可以设置多条策略
1.2 AOF persistence (append only file)
AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
AOF方式类似Mysql的binlog, Mongodb的oplog.
通过配置 appendonly yes 启用
- 优点:数据安全性更高,可以配置同步持久化
- 缺点:效率低
1.2.1 AOF 持久化策略 appendfsync always|everysec|no
AOF persistence 的配置
#启用AOF persistence
appendonly yes
# persistence 策略: always 每次收到非查询命令就写入,最慢,保证完全持久化,不推荐。
# persistence 策略: everysec 每秒写入,折中方案,推荐
# persistence 策略: no 依赖os刷写策略。性能最好,持久化无保证。
appendfsync always
二、Redis Master-Salve Redis主从
master slave 可以层级连接,master首次完全复制,不会阻塞master的其他操作,但会阻塞salve
2.1 主从策略:主读从写
Redis Master写入后复制到从服务器,所以一般Master提供读写服务,Salve提供读服务。
2.2 主从复制模式:全量,增量
Salve从Maser同步一般第一次做一次全量同步,后续增量同步,当出现故障的时候,Salve可发起全量同步。
全量同步就是利用RDB持久化,先fork子线程全量到处一份快照文件给slave,然后同步增量变换。
2.3 Sentinel 哨兵模式
Redis可以在启动为Sentinel(哨兵)模式。Sentinel一般部署在其他机器上,可以看做是一个只提供订阅服务的Redis服务器。
Sentinel提供Monitoring 监控、Notification 提醒、Automatic failover 自动故转移。
- 主观下线:一个Sentinel发现Redis连不上的时候
- 客观下线:多数Sentinel发现Redis连不上的时候
当Redis的Master客观下线的时候,Sentinel会从Slave中重新选择一个Maser,并配置其余的Salve.
网友评论