来源:Node.js

持久化

Redis是一种内存数据库,假设服务器宕机了,Redis存储的数据会丢失,所以需要进行持久化

Redis提供了两种持久化方案

  • RDB(Redis Database)

    • RDB是一种快照的,将内存中的数据定期保存到磁盘上
    • 可以配置Redis服务器,设置自动触发RDB快照的条件,例如在指定的时间间隔内、或在指定的写操作次数达到一定阈值时,进行快照保存
    • 持久化后生成的快照文件是一个二进制文件,包含了Redis数据的完整状态
    • 在恢复数据时,可以通过加载快照文件将数据重新加载到内存中
  • AOF(Append-Only File)

    • AOF记录了Redis服务器执行的所有写操作命令,在文件中以追加的方式保存
    • 当Redis需要重启时,可以重新执行AOF文件中保存的命令,以重新构建数据集
    • 相比于RDB持久化,AOF持久化提供了更好的数据恢复保证,因为它记录了每个写操作,而不是快照的形式
    • 然而,AOF文件相对于RDB文件更大,恢复数据的速度可能会比较慢

配置

RDB配置

在配置文件中修改save的配置

  • save 900 1:900秒内进行1次改动就会触发快照
  • save 300 10:300秒内进行100次修改就会触发快照
  • save 60 10000:60秒内进行10000次修改就会出发快照

具体策略需要根据服务器的用户量与负载情况斟酌

快照会被存在redis文件夹中的dump.rdb中

也可以直接执行save命令手动保存一次快照

AOF配置

在配置文件中修改appendonly的值为yes(默认为no)