什么是Redis的持久化:
持久化就是把内存的数据写入磁盘中去,防止服务宕机了内存数据丢失。
持久化的方式:一: RDB(快照的方式存储,效率高,安全性低) 与 二 : AOF(时时存储,效率低,安全性高)
一:RDB(默认)
rdb是Redis DataBase缩写
功能核心函数 rdbSave(生成RDB文件) 和rdbLoad (从文件加载内存)两个函数
a) 每隔15分钟如果有1次修改操作则进行持久化
b) 每隔5分钟如果有10次修改操作则行持久化
C)每隔1分钟如果有10000次修改操作则进行持久化
二 : AOF
Aof 是Append-only-file 缩写
每当执行服务器(定时)任务或者函数时 flushAppendOnlyFile函数都会被调用,这个函数执行以下两个工作
aof 写入保存:
where :根据条件 将aof buf 中的缓存写入AOF文件
save 根据条件 调用fsync 或 fdatasync 函数 ,将AOF文件保存到磁盘中,
存储结构:
内容是redis 通讯协议(RESP)格式的命令文本存储
RED 与AOF的比较
aof 文件比rdb更新频率高,优先使用aof还原数据。
aof 比 rdb 更安全也更大
rdb 的性能比aof好
如果两个都配置优先加载AOF
redis 通讯协议(RESP),解释一下什么是RESP, 有什么特点
RESP 是redis 客户端 和服务端 之前使用的一种通讯协议;
RESP 的特点 实现简单 快速解析 可读性好
For Simple Strings the first byte of the reply is “+” 回复
For Errors the first byte of the reply is “-” 错误
For Integers the first byte of the reply is “:” 整数
For Bulk Strings the first byte of the reply is “$” 字符串
For Arrays the first byte of the reply is “*” 数组