redis应该定期将内存中的数据进行持久化,当redis节点重启时.首先应该读取持久化文件.恢复内存数据.
Redis提供了将数据定期自动持久化至硬盘的能力,包括RDB和AOF两种方案。
1
RDB模式
- RDB模式是redis默认的持久化策略.
- RDB模式,能够定期将内存中的数据进行保存.
- RDB模式中可能会丢失数据.所以如果redis当做数据库/队列时不要使用该模式
- RDB模式备份效率是最高的.
- RDB模式备份时做的是内存的快照,并且持久化文件中,只保留最新的内存数据.持久化文件大小是可控的.
模式配置:
持久化命令
save :立即执行持久化
bgsave :开启另外的线程进行持久化.
默认的持久化周期
save 900 1 #在900秒内,执行一次set操作,则持久化一次
save 300 10 #在300秒内,执行10次set操作,则持久化一次
save 60 10000 #在60秒内,执行10000次set操作,则持久化一次
AOF模式(Append Only File)
- AOF模式默认是关闭的.需要手动的开启.
- AOF模式能够实现数据的实时存储,保证数据的有效性
- AOF模式一般使用在数据库/队列
- AOF模式效率低于RDB模式.
- AOF模式相当于记录了用户全部的操作过程,并且将用户的指令追加到持久化文件中.该持久化文件占用的空间大.恢复内存数据的时间长.
模式配置:
1.开启AOF模式
2 AOF配置文件名称
3.持久化策略
appendfsync always 每次执行set操作,则持久化一次
appendfsync everysec 每秒持久化一次. (一般选用这个)
appendfsync no 由操作系统决定何时持久化一般默认15分钟
4.AOF文件保存的路径