目录
将内存中的对象保存到可永久保存的存储设备中。例如数据库、磁盘文件、 XML 数据文件等等。避免重启系统或者关闭系统后导致缓存丢失。如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式。
Redis的持久化有2种,
RDB
RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。但会有丢失数据的可能性。
在Redis中,RDB是默认的持久化方式,它将内存中的数据写入到Redis根目录dump.rdb文件中。等到下一次启动 Redis 时,Redis 会去读取该目录下的 dump.rdb 文件,将里面的数据恢复到 Redis。
默认触发条件
1.服务器在900秒之内,对数据库进行了至少1次修改
2.服务器在300秒之内,对数据库进行了至少10次修改。
3.服务器在60秒之内,对数据库进行了至少10000次修改。
关闭RDB
AOF
AOF持久化方式每次写操作都会记录到文件中。等到下一次启动 Redis 时,Redis 会去读取该目录下的 appendonly.aof 文件,将里面的数据恢复到 Redis。
AOF持久化方式默认不启动,启动为yes
appendonly.aof 记录操作的文件名
AOF 支持几种同步频率方式
appendfsync always # 每次有数据修改发生时都会写入AOF文件(安全但是费时)。
appendfsync everysec # 每秒钟同步一次,即使发生系统故障,最多也只会丢失最近一秒内的数据。
appendfsync no # 从不同步。高效但是数据不会被持久化。
总结:两种持久化方式,如何选择?
- 对于企业级的中大型应用,如果不想牺牲数据完整性但是又希望保持高效率,那么你应该同时使用 RDB 和 AOF 两种方式;
- 如果你不打算耗费精力在这个地方,只需要保证数据完整性,那么优先考虑使用 AOF 方式;
- RDB 方式非常适合大规模的数据恢复,如果业务对数据完整性和一致性要求不高,RDB是很好的选择。