Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存也可以持久化的日志型、Key-Value数据库。
两种方式 RDB(Redis DataBase) redis的默认持久化机制,在指定的时间间隔内将内存中的数据集快照写入磁盘。
AOF(Append Only File) 以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
Redis还可以同时使用AOF持久化和RDB持久化。 在这种情况下,当 Redis重启时,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。
优缺点 RDB:
优点
独立紧凑的数据文件,适用于备份和灾难恢复;
RDB在恢复大数据集时的速度比AOF的恢复速度要快。
缺点
AOF:
优点
AOF 的默认策略为每秒钟fsync一次,在这种配置下,Redis 仍然可以保持良好的性能,并且就算发生故障停机,也最多只会丢失一秒钟的数据
缺点:
对于相同的数据集来说,AOF 文件的体积通常要大于 RDB 文件的体积。
根据所使用的fsync策略,AOF的速度可能会慢于RDB。
配置 开启RDB 1 2 3 save 900 1 #在900秒(15分钟)内,如果至少有1个key发生变化,则dump内存快照。 save 300 10 #在300秒(5分钟)内,如果至少有10个key发生变化,则dump内存快照。 save 60 10000 #在60秒(1分钟)内,如果至少有10000个key发生变化,则dump内存快照。
关闭 RDB 1 redis-cli config set save ""
1 2 3 # save 900 1 # save 300 10 # save 60 10000
开启 AOF 1 2 3 4 redis-cli config set appendonly yes redis-cli config appendfsync always #每次有数据修改发生时都会写入AOF文件。 或者 redis-cli config appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
关闭AOF 1 2 redis-cli config set appendonly no appendfsync no #从不同步。高效但是数据不会被持久化。
参考文档