redis的持久化方式有RDB与AOF两种:
RDB持久化是定期执行持久化命令,或者手动save保存,缺点是时间间隔内的数据可能会丢失
AOF持久化是把执行过的修改类的命令都存到文件中,下次再次执行一遍记录,从而恢复数据,缺点可能存储大量命令数据。
RDB持久化相关配置:
dir /data/ # 设置持久化文件保存目录
dbfilename mydb.rdb # 设置持久化文件名称
save 900 1 # 每900秒有一个修改库的操作
save 300 10 # 每300秒内有十个修改库的操作
save 60 10000 # 每60秒有一万个修改库的操作
# 三个条件满足一个就保存一次
AOF持久化相关配置:
appendonly yes # 打开AOF持久化
appendfsync always # 总是修改类的操作
everysec # 每秒做一次持久化
no # 依赖于系统自带的缓存大小机制
redis 持久化方式有哪些?有什么区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog
redis不重启的情况下,如何将持久化方式从RDB更改为AOF?
CONFIG set appendonly yes # 开启AOF
CONFIG SET save "" # 关闭RDB
# 上面操作只是临时更改配置,并不会写入到配置文件中,如重启数据库会失效