Redis重启恢复数据主要依赖于持久化机制。Redis支持两种持久化方式:RDB(Redis Database Backup file)和AOF(Append Only File)。一、RDB持久化RDB是Redis默认的持久化方式。它会在指定的时间间隔内,将内存中的数据快照写入磁盘。当Redis重启时,它会加载最近一次生成的RDB文件来恢复数据。1. 触发条件:可以通过配置文件中的save参数来设置触发RDB持久化的条件,例如save 900 1表示在900秒内至少有1个键被修改时,就会触发RDB持久化。2. 恢复过程:Redis启动时,如果检测到RDB文件存在,会自动加载该文件并将数据恢复到内存中。二、AOF持久化AOF持久化是将Redis执行的写命令追加到AOF文件中。当Redis重启时,会重新执行AOF文件中的命令来恢复数据。1. 开启方式:在配置文件中设置appendonly yes来开启AOF持久化。2. 写入频率:可以通过配置appendfsync参数来控制AOF文件的写入频率,有always(每次写操作都同步)、everysec(每秒同步一次,这是默认值)、no(由操作系统决定何时同步)三种模式。3. 恢复过程:Redis启动时,会读取AOF文件并依次执行其中的命令,从而恢复数据。三、混合持久化混合持久化是在Redis 4.0版本引入的,它结合了RDB和AOF的优点。重启时,先加载RDB文件恢复大部分数据,然后再重放AOF文件中的增量数据。这样既能快速恢复数据,又能保证数据的完整性。通过合理配置持久化方式,可以确保Redis在重启后能够有效地恢复数据,保证数据的安全性和可用性。