数据库

  • redis的过期键删除策略
    • 惰性删除
    • 定期删除
  • 数据库中包含过期键不会对生成新的RDB文件造成影响

RDB持久化

  • 将redis在内存中的数据库状态保存到磁盘中,避免数据意外丢失
  • 生成的RDB文件是一个结果压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态
  • RDB文件的创建
    • SAVE
      • 会阻塞redis服务器进程,直到RDB文件创建完毕为止
      • 客户端发送的所有命令请求都会被拒绝
    • BGSAVE
      • 派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程继续处理命令请求
  • RDB文件的载入
    • RDB文件的载入工作是在服务器启动时自动执行的
    • 如果服务器开启了AOF持久化功能,服务器会优先使用AOF文件来还原数据库状态
    • 只有在AOF持久化功能处于关闭状态时,服务器才会使用RDB文件来还原数据库状态
    • 在载入RDB文件期间,会一直处于阻塞状态,直到载入工作完成为止

AOF持久化

  • AOF,append only file,通过保存redis服务器所执行的写命令来记录数据库状态
  • 功能实现步骤
    • 命令追加,append
    • 文件写入
    • 文件同步