宁波产城生态建设集团网站,二手网站建设论文,wordpress音乐主题musik汉化,美工个人网站Redis运维和开发学习笔记(2) redis持久化 文章目录Redis运维和开发学习笔记(2) redis持久化持久化持久化方式一:RDB触发~~的三种~~方式1. save命令2. bgsave配置触发机制RDB 总结持久化方式二:AOFAOF的三种策略三种策略的优缺点AOF重写机制持久化 redis将所有数据保存在内存中对数据的更新异步地保存在磁盘上 快照 MySQL DumpRedis RDB 写日志 MySQL BinlogHbase HLogRedis AOF RDB存在的问题 耗时耗性能丢失数据
持久化方式一:RDB RDB是Redis用来进行持久化的一种方式是把当前内存中的数据集快照写入磁盘也就是 Snapshot 快照数据库中所有键值对数据。恢复时是将快照文件直接读到内存里。 调用forks 生成一个子进程 子进程复制数据集到一个临时的rdb文件中 当子进程完成对数据集的复制后redis会用新的rdb文件并删除旧得rdb文件 触发的三种方式
1. save命令
过程 client-redis-创建RDB文件二进制
redis save
ok2. bgsave 过程 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qEl1FSOy-1572053410723)(media/15637201103316/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-07-21%2022.56.06.png)] 两者对比 save与sbgsave | 命令 | save | bgsave || — | — | — | | IO类型 | 同步 | 异步 | | 阻塞 | 是 | 是阻塞发生在fork | | 复杂度 | O(n) | O(n) | | 优点 | 不消耗额外的内存 | 不阻塞客户端命令 | | 缺点 | 阻塞客户端命令 | fork消耗内存 |
配置
save 900 1 save 300 10 save 60 10000 dbfilename dump.rdb dir ./ (设置路径 stop-writes-on-bgsave-error yes如果bgsave发生错误就停止写入 rdbcompression yes采用压缩格式) rdbchecksum yes(采用校验和
触发机制
全量复制主会自动生成rdb文件debug reload 不讲内存清空的重启触发rdb文件生成shutdown触发rdb生成
RDB 总结
RDB是 Redisp内存到硬盘的快照用于持久化save通常会阻 ARedis塞bgsaveTZRedis但是会fork新进程save自动配置满足任一就会被执行。有些触发机制不容忽视
持久化方式二:AOF
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tz5XGcNh-1572053410724)(media/15637201103316/%E5%9B%BE%E7%89%87%201.png)]
| 时间戳 | save | | — | — | | T1 | 执行多条命令 | | T2 | 满足RDB条件自动创建 | | T3 | 再次执行多条写命令 | | T4 | 宕机 | | | 数据丢失 |
写一条命令就在AOF增加一条命令。当redis宕机就是用AOF对数据进行完整恢复。
AOF的三种策略
always redis执行写命令是将命令卸载缓冲区每条命令fsycn到硬盘。everysec redis执行写命令是将命令卸载缓冲区每秒把命令fsycn到硬盘。no redis执行写命令是将命令卸载缓冲区由操作系统判断把命令fsycn到硬盘。
三种策略的优缺点
命令alwayseverysecno优点不丢失数据每秒一次Sync丢1秒数据不用管缺点1O开销较大一般的sata盘只有几百TPS丢1秒数据不可控
AOF重写机制
原生AOFAOF 重写set hello worldset hello heheset hello javeset hello hehe
减少磁盘占用量加快恢复速度 两种方式 bgrewriteaoffork子进程完成重写) AOF重写配置 配置 | 配置名 | 含义 | | — | — | | Auto-aof-rewrite-min-size | AOF文件重写需要的尺寸 | | Auto-aof-rewrite-percentage | AOF增长率 | 统计 | 统计名 | 含义 | | — | — | | aof_current_size | AOF 当前尺寸 | | aof_base_size | AOF上次启动和重写的尺寸 | 自动触发机制 aof_current_size Auto-aof-rewrite-min-size (aof_current_size - aof_base_size)/aof_base_size Auto-aof-rewrite-percentage AOF重写流程