目录
1:写在前面
Redis是一种NOSQL数据库,和 memecache最大的区别是Redis是可以持久化的,那么是怎么持久化的呢,以及持久化的策略。
2:两种备份机制
2.1:RDB(redis-database)
1:当服务器断电时间,会自动的生成(覆盖)一个dump.rdb文件,在服务器再次启动的时候会加载
2:全量保存----- 意味着dump.rdb文件较大
3:可以在redis.confg中设置参数 save <seconds> <changes>
4:触发条件,当达到在seconds时间内,改变了changes次数,会重新生成一份rdb文件,覆盖之前的dump.rdb文件
2.2:AOF(append-only-file)
1:默认是关闭的,开启参数 appendonly yes 即可
2:默认的文件名字 appendonly.aof 采用文件追加的方式
3: aop持久化策略
appendfsync
# always (没一个操作命令都会持久化磁盘,不建议使用,性能差)
everysec (默认,每秒同步一次,可能会存在一秒中的数据丢失问题--宕机)
#no (从不同步)
4:可以使用 redis-chech-aop --fix appendonly.aof 进行修复
5:auto-aof-rewrite-percentage 100
设置重写的增长比率
aop文件上限扩展为之前的增加 100%
6:auto-aof-rewrite-min-size 64mb
设置重写的基准值
当日志文件达到64mb的时候,会触发aop
3:总结
3.1:rdb和aof两种持久化的方式是可以同时存在的
3.2:会优先加载 aof文件,找不到aof文件会去加载rdb文件。
3.3:aof文件有问题,会导致redis服务器启动不起来