Redis的持久化有两种方式:
RDB(Redis Database)和AOF(Append Only File)
目录
将Redis数据以快照的形式保存到磁盘中
在RDB方式下,Redis提供了save和bgsave两种方式进行数据持久化。
其中save方式是在主进程中执行,会阻塞所有的客户端请求,直到快照保存完成。
bgsave方式则是通过创建子进程进行数据持久化,并不会阻塞客户端请求。
在save和bgsave中,save会在执行完指定时间内的写操作后进行快照保存,而bgsave则是在指定时间内开启一个子进程进行快照保存。
在save和bgsave中,save会在执行完指定时间内的写操作后进行快照保存,而bgsave则是在指定时间内开启一个子进程进行快照保存。
save 900 1 save 300 10 save 60 10000 redis的持久化操作为什么要保存三次因为在Redis的持久化过程中,如果只进行一次快照保存,可能会因为系统崩溃或者其他原因导致数据丢失。而多次进行快照保存,可以增加数据的保护程度,降低数据丢失的风险。因此,通常会对持久化操作进行多次保存,在上述的示例中,就是在900秒、300秒和60秒后分别进行一次快照保存。
dir /a/b/c
#该名称会在dir目录下生成
dbfilename dump.rdb
rdbcompression yes
#rdbcompression指定是否开启rdb文件的压缩存储,默认为yes,开启压缩存储后可以减小RDB文#件的大小,但会增加cpu的使用量。
将Redis的每个写操作以追加的方式记录到AOF文件中,这样在redis重启时可以通过重新执行AOF文件中记录的写操作来恢复数据
dir /a/b/c
#开启AOF持久化方式
appendonly yes
#文件名
appendfilename "appendonly-41.aof"
在配置redis.conf时,可以同时配置rdb和aof两种格式的持久化操作吗,有什么推荐?
可以同时配置RDB和AOF两种格式的持久化操作,因为它们各有优缺点,可以根据实际情况选择合适的持久化方式。
RDB持久化方式可以将Redis数据库在指定的时间间隔内生成快照,并将快照保存到硬盘上。快照保存的是Redis数据库在某个时间点的数据,可以保证数据的完整性。但是,如果Redis服务器在快照生成之后崩溃,最后一次快照生成之后的新写入数据将会丢失。
AOF持久化方式可以将Redis数据库中所有的写命令记录在追加文件中,当Redis服务器重启时,可以通过重新执行AOF文件中的所有命令来还原数据。AOF持久化方式可以更好地保证数据的一致性,但是由于需要记录每个写命令,所以AOF文件通常比RDB文件更大,重启时也需要更长的时间来还原数据。
根据业务的需求和实际情况,可以选择RDB、AOF或RDB与AOF的组合持久化方式。如果数据的完整性比较重要,可以使用RDB方式;如果数据的一致性比较重要,可以使用AOF方式;如果既要保证数据的完整性,又要保证数据的一致性,可以使用RDB与AOF的组合方式。一般来说,建议使用AOF持久化方式,因为它更能保证数据的一致性。
https://blog.csdn.net/Isonion/article/details/134442807?spm=1001.2014.3001.5501