Redis是一种开源的内存数据库,它可以持久化数据,以便在服务器重启后数据不丢失。Redis提供了两种持久化方法:RDB和AOF。
RDB持久化
RDB持久化是一种快照式的持久化方法,它将Redis当前的内存数据保存到磁盘上的一个二进制文件中,文件名为dump.rdb。RDB持久化的优点是占用空间小,可以快速实现持久化,但是它不能保证数据的完整性,只能在指定的时间间隔内将数据保存到磁盘,如果服务器在这段时间内发生故障,会丢失一段时间内的数据。
# 使用RDB持久化 save 900 1 save 300 10 save 60 10000
以上命令表示,如果900秒内,数据库发生了1次改变,则在900秒后将内存中的数据保存到dump.rdb文件中;如果300秒内发生了10次改变,则在300秒后将内存中的数据保存到dump.rdb文件中;如果60秒内发生了10000次改变,则在60秒后将内存中的数据保存到dump.rdb文件中。
AOF持久化
AOF持久化是一种基于日志的持久化方法,它将Redis服务器执行的所有写操作命令都记录到磁盘上的一个日志文件中,文件名为appendonly.aof。AOF持久化的优点是可以保证数据的完整性,可以按照日志文件的顺序重放所有的写操作,从而恢复数据库的状态,但是它占用的空间比RDB持久化要大,而且恢复数据库的速度也比RDB慢。
# 使用AOF持久化 appendonly yes auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb
以上命令表示,开启AOF持久化,当AOF日志文件的大小超过64M时,就会自动重写AOF日志文件,重写的比例为100%,即重写时会将所有的写操作都记录到AOF日志文件中。
RDB持久化和AOF持久化都可以用来保存Redis的数据,但是RDB持久化不能保证数据的完整性,而AOF持久化可以保证数据的完整性,但是占用空间比RDB持久化大,恢复数据库的速度也慢。在实际应用中,可以根据实际需要,选择合适的持久化方式来保存Redis的数据。