redis持久化的两种方式:(重点)
RDB: 全量打包-----------将内存中的所有数据存储在磁盘
执行一个bgsave ----1. 关机redis
2.
缺点:1.大量的数据重复打包和覆盖耗费时间和性能
2.配置save 不能把所有情况考虑在内,redis 宕机会导致数据丢失
AOF: 命令追加-------------将命令记录在aof 的日志文件 (存储的操作指令)
采用的记录命令是每秒钟记录一次
Aof 文件会非常大(重复命令)
Redis 主从搭建:(亮点)
在从机 执行 slaveof <masterip> <masterport>
主从同步的原理:
全量同步:
第一次连接
生成rdb 文件 + 持续输出的指令记录在log 文件 发送给slave从机
增量同步:
停机或宕机的slave 恢复连接
将指令记录的log 文件中根据offset 偏移量记录的数据中断点,重新开始同步给slave
哨兵(sentinel):
监控:1. 发送心跳 2. 主观下线(Sdown) , 客观下线(Odown)
故障转移: 选举slave 成主机过程(稳定的,同步数据快的)
通知:告知各个redis 服务某个slave 变成master
启动----redis-sentinel s1/sentinel.conf
集群搭建:
原因:哨兵主从复制 不能解决高并发海量数据的场景