Redis支持两种持久化方式,分别是RDB和AOF。
- RDB持久化 RDB持久化是指Redis将内存中的数据以快照的形式保存到磁盘上。快照可以手动执行,也可以自动执行。在手动执行时,可以使用SAVE或BGSAVE命令,其中SAVE命令会阻塞Redis服务器进程,直到快照生成完成;BGSAVE命令则是在子进程中执行快照生成,不会阻塞服务器进程,但可能会占用较多的系统资源。在自动执行时,可以设置触发条件,例如每隔一定时间执行快照生成或者当满足一定的修改条件时执行快照生成。
- AOF持久化 AOF持久化是指Redis将每个写操作记录在一个追加的文件中,以文本格式保存。当Redis重启时,通过重放这些写操作,可以恢复内存中的数据。AOF持久化有三种写入方式:每秒钟写入一次、每执行一个命令就立即写入和每写入一定量的数据就写入一次。第一种方式是性能最好的,但可能会丢失一秒钟的数据;第二种方式是最安全的,但性能最差;第三种方式则是权衡方案,可以根据具体情况进行选择。
在实际应用中,可以选择RDB和AOF中的一种或者同时使用两种。RDB持久化可以快速恢复大量数据,而AOF持久化可以保证数据不丢失。同时使用两种持久化方式可以兼顾快速恢复和数据不丢失两个需求。