redis 持久化方式

redis 目前支持的持久化方式

快照方式:
1. SAVE 模式:保存快照的同时,会停止redis服务,直到快照落地,才会重新开始提供服务。
2. BGSAVE 模式:使用fork的方式拷贝redis内存,fork的同时会导致服务停止,但是间隔比较短,拷贝完内存后,redis重新提供服务,将内存数据落地,因为涉及到内存的拷贝,要求系统拥有和redis占用内存相同大小的空闲内存。

快照缺点:
只能恢复最近一次的快照,有部分数据出现丢失。

aof方式:每次写入redis前,都会将操作写入内存缓冲区,然后以一定的策略刷至磁盘,恢复redis通过日子回放。
1. always : Redis在每次有写操作发生时都会同步到硬盘,这种方式会给IO带来很大压力,实际中写入的速率要考虑硬盘的IO速率。
2. everysec :Redis每1秒将日志同步到硬盘,这种方式性能较好,但也意为着如果Redis崩溃那么将丢失1秒的数据。
3. no : Redis不主动控制内存缓存区和硬盘的同步,而由操作系统来控制。这种方式不可控,一般不采用。

aof缺点:
随着redis运行,持久化文件的体积会越来越大,redis恢复的时间越长。所以引入BGREWRITEAOF机制,相同key的操作和不断重写,减小文件体积,提高恢复速度。

BGREWRITEAOF 机制:
aof 存放所有key的值,redis会以一定的策略对aof进行压缩和rewrite,rewrite之后aof文件会保存keys的最后的状态,清除掉之前冗余的,来缩小这个文件。

猜你喜欢

转载自blog.csdn.net/qq_17612199/article/details/80347495