Redis学习笔记02——Redis持久化、主从架构,哨兵系统

一、RDB快照

redis将内存数据库快照保存在dump.rdb的二进制文件中。
相关配置:
save 900 1
save 300 10
#60秒内超过10000条命令就触发rdb操作
save 60 10000

rdb文件存放的目录
dir ./

手工通过执行save和bgsave命令,生成rdb文件。
save命令是同步的,会阻塞其他redis 命令,但是它不会消耗额外内存;
bgsave借助操作系统的写时复制功能,。bgsave子进程是主进程fork生成的,在持久化操作的时候,如果有其他命令对redis 进行操作,那么该操作同样会对复制出来的副本进行操作,从而实现数据的一致性。
bgsave是异步的,不会阻塞其他redis命令,需要消耗额外内存。

二、AOF(append-only file)

解决rdb备份redis数据时间间隔久的问题,万一宕机,丢失数据量比较大。
AOF开关配置:
appendonly no
AOF持久化有三种策略:
appendfsync always 每条命令都持久化,影响性能和效率
appendfsync everysec 每秒持久化一次
appendfsync no 将持久化操作交给操作系统触发

AOF重写,AOF文件中可能存在太多无用的命令,通过重写节约空间。
AOF重写策略:
auto-aof-rewrite-percentage 100 aof文件达到上次重写的1倍时进行重写;
auto-aof-rewrite-min-size 64mb aof文件达到64MB时重写;

手工触发aof重写的命令:
bgrewriteaof

三、混合持久化

将rdb二进制文件压缩的有点引入aof中
配置开关:
aof-use-rdb-preamble yes

AOF重写时,将重写这一刻的内存做RDB快照处理,写的过程中的命令写成aof,文件的前部分是rdb格式的二进制内容,后面追加写入redis命令。

redis哨兵架构

解决redis主从架构,主节点挂掉之后,需要人为干预,重新配置主节点的问题;
(1)客户端连接哨兵集群;
(2)哨兵把主节点返回给客户端;
(3)客户端直接连接主节点;
主节点挂了之后,哨兵会自动选举出新的主节点,接着返回给客户端;
在哨兵选举新的主节点的过程中,redis集群无法对外提供服务。

配置文件

复制sentiel.conf文件;
sentiel monitor mymaster 192.168.1.1 6379 2 #数字2表示,哨兵数/2+1,半数以上;

你可能感兴趣的:(Redis总结,redis,java,数据库,缓存,rdb)