02-Redis持久化、主从复制

1. Redis持久化

redis 是一个支持持久化的内存数据库,也就是说 redis 需要经常将内存中的数据同步到磁盘来保证持久化,持久化可以避免因进程退出而造成数据丢失;

  注意:如果两种持久化方案同时存在,AOF的优先级>RDB优先级

1.1 RDB持久化方式

RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,RDB不适合实时持久化,适合全量复制,灾难性恢复。

(1)RDB:文件后缀名xxx.rdb 默认方式

(2)特点:全量复制,灾难性恢复

(3)RDB持久化配置

# 时间策略  snapshot
save 900 1:表示900s内如果有1条是写入命令,就触发产生一次快照,可以理解为就进行一次备份
save 300 10:表示300s内有10条写入,就产生快照
save 60 10000


# 文件名称
dbfilename dump.rdb


# 文件保存路径
dir /home/work/app/redis/data/


# 如果持久化出错,主进程是否停止写入
stop-writes-on-bgsave-error yes


# 是否压缩
rdbcompression yes


# 导入时是否检查
rdbchecksum yes


#禁用RDB配置
save的最后一行写上:
save ""
#save 900 1
#save 300 10
#save 60 10000

1.2 AOF持久化方式

针对RDB不适合实时持久化,redis提供了AOF持久化方式来解决 开启:redis.conf设置:appendonly yes (默认不开启,为no) 默认文件名:appendfilename "appendonly.aof"

(1)AOF:文件后缀名xxx.aof

(2)特点:适合实时持久化

(3)AOF持久化配置

appendonly yes           //启用aof持久化方式
# appendfsync always //实时检查是否有数据写入操作,最慢的,但是保证完全的持久化

以下不推荐使用
appendfsync everysec //每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐
# appendfsync no         //完全依赖os,性能最好,持久化没保证(操作系统自身的同步)
no-appendfsync-on-rewrite  yes  //正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100  //aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb   //aof文件,至少超过64M时,重写

注意:当AOF和RDB文件同时存在时,优先加载RDB

(4)Redis主从复制

新增redis6380.conf, 加入 slaveof 192.168.42.111 6379, 在6379启动完后再启6380,完成配置,断开主机,进行测试。

Redis主从拓扑

① 一主一从

用于主节点故障转移从节点,当主节点的“写”命令并发高且需要持久化,可以只在从节点开启AOF(主节点不需要)

② 一主多从

针对“读”较多的场景,“读”由多个从节点来分担,但节点越多,主节点同步到多节点的次数也越多,影响带宽,也加重主节点的稳定

③ 树状主从

猜你喜欢

转载自blog.csdn.net/qq_45037155/article/details/124900971