| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Redis 持久化浅谈 -> 正文阅读 |
|
[大数据]Redis 持久化浅谈 |
1. Redis 持久化Redis 持久化可以分为三种:
2. RDB默认情况下,Redis 的内存快照保存在 dump.rdb 的二进制文件中。该文件默认在 redis 安装目录下,当 rdb 文件存在时,redis 启动会先读取rdb文件并恢复数据。 设置 Redis 开启RDB快照有三种方法:
在 redis 客户端手动执行 注意: Save和Bgsave对比:
RDB持久化的优缺点: 优点:
缺点:
3. AOFAOF是一种比RDB更灵活持久的备份策略,会将每一条**修改(例如 set lpush等等)**的指令记录到appendonly.aof文件中(RDB是满足条件才会记录)。redis7.0后该文件会被拆分为多个文件。 注意:AOF并不是每次有新命令就会缓存到磁盘文件中,而是先写入系统缓存每隔一段时间在 fsync 到磁盘 Redis 启动时会自动读取aof文件中的命令参数进行命令重写,也就是将每条命令都执行一次。 打开AOF备份策略:修改 redis.conf 文件,将appendonly改为 yes (默认为 no)
可修备份文件名称:
AOF的备份策略(多久才将数据 fsync 到磁盘文件中):
开启AOF后,每条修改命令都会备份,appendonly.aof 文件里存储的是每条命令的解析,例如执行两条命令
appendonly.aof的内容: 解析:set test1 1
当AOF文件存储的数据量越来越大,到了一定的程度后会触发AOF Rewriting(重写)。redis 会在后台(fork 一个子线程,不会阻塞主线程)对 aof 文件进行重写,优化那些重复的命令,例如:对某一个key进行重复的增量更新 其在aof文件中的命令如下:可见 incr test1 这个命令重复了四次,如果这个次数是 10000 次 、100000次或者更大呢?那么redis启动读取aof文件并执行命令时就会重复执行相同的命令导致损耗更多的性能。为了解决这个问题,redis引入了重写。 重写可以手动触发也可以自动触发:在控制台输入 bgrewriteaof 可以手动触发重写
自动触发可配置频率:
重写功能可以将这些命令进行优化,例如这里的四次 incr 可以直接优化为 set test1 4,这样 redis 无需执行多次的重复命令从而优化性能。 重写后文件大小对比: 重写后的文件内容:已经变成了 set test1 4 注意:开启混合开发后,内容会变成二进制形式 AOF和RDB的对比:
4. RDB + AOF 混合持久化redis4.0 后为了解决RDB容易丢失数据和AOF恢复速度慢的问题引入了混合持久化的概念。开启混合持久化需要将 开启混合持久化后,RDB无需指定开启,命令默认存储到AOF文件中,每当AOF进行重写时,在重写那一刻会同时进行RDB快照并将RDB快照内容和AOF重写后的内容写入一个新的aof文件中,然后覆盖旧的aof文件。这样redis重启后会先读取aof文件中的RDB内容然后再读取aof自身重写后的内容进行数据恢复从而实现数据恢复效率的提升。 重写后的aof文件内容,以上面的4次incr为例: 其结构为:RDB内容在AOF内容前面,所以恢复数据时先恢复RDB快照内容的数据,再恢复AOF内容的数据。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:55:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |