Redis---持久化

一:Redis支持两种持久化方式:
		1. Snapshotting(快照)   --- 默认方式
			a. 配置样例
				save 900 1        #  900 秒内如果超过 1 个 key 被修改,则发起快照保存
				save 300 10     #  300 秒内容如超过 10 个 key 被修改,则发起快照保存
				save 60 10000
				
		2. Append-only file(缩写 aof)
			• 快照方式由于是一定的时间间隔持久化一次,所以如果redis意外down掉,会丢失最后一次快照之后的操作数据。那么如果用户不想丢失任何数据,可以使用AOF方式。
			• 使用AOF方式持久化时,Redis会将每一个收到的写命令都通过write函数追加到文件中(默认appendonly.aof),当redis重启时会通过读取文件保存的写命令来重建整个数据库内容。当然由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘中,因此还是会存在数据丢失的可能。不过我们可以通过配置告诉redis通过fsync函数强制os写入磁盘的时机,有以下三种方式(默认每秒fsync一次)
				appendonly yes                    //启用 aof 持久化方式 
				# appendfsync always      //收到写命令就立即写入磁盘,最慢,但是保证完全的持久化 
				appendfsync everysec      //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中
				 # appendfsync no             //完全依赖 os,性能最好,持久化没保证
			• 为了压缩 aof 的持久化文件。redis 提 供了 bgrewriteaof 命令。收到此命令 redis 将使用与快照类似的方式将内存中的数据以命令 的方式保存到临时文件中,最后替换原来的文件。

猜你喜欢

转载自blog.csdn.net/qq_35723073/article/details/84288353