| |
|
开发:
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高级——持久化 |
什么是持久化Redis 对数据的操作都是基于内存的,当遇到了意外情况导致 Redis 服务关闭后,如果没有持久化机制,Redis 中的数据将会丢失,利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化 RDB(Redis DataBase)简介将内存中的所有数据进行快照保存,并以二进制文件的形式存储到硬盘上 手动触发save 指令:触发一次 RDB 持久化,但?save 命令会阻塞 Redis 服务,直到RDB持久化完成,当 Redis 服务储存大量数据时,会造成较长时间的阻塞 bgsave 指令:触发一次 RDB 持久化,与 save 命令不同的是,一般不会造成 Redis 服务阻塞,Redis 进程会执行 fork 操作创建子进程,在子进程中执行 RDB 持久化,推荐使用 触发一次 RDB 持久化后,当前 Redis 中的数据快照会以二进制的形式被保存在 dump.rdb 文件中,当 Redis 服务重启时,数据会自动恢复 自动触发在?redis.windows.conf(Linux 下为 redis.conf)中进行 RDB 配置
在限定时间范围内,key 的变化达到指定数量则进行持久化(进行 bgsave 操作) second:监控时间范围 changes:监控 key 的变化量? 其它 RDB 配置
RDB 的优缺点优点
缺点
AOF(Append Only File)简介将 Redis 的写操作日志以追加的方式写入文件 写入磁盘的三种策略当 Redis 进行持久化时,会先将客户端传来的写命令存放在 AOF 缓冲区,再根据具体的策略写入磁盘中的 AOF 文件 always:每次写入指令都同步到 AOF 文件中,不会丢失数据,但性能低下 everysec:每秒将缓冲区的指令同步到 AOF?文件中,最多只会丢失一秒内的数据 no:由操作系统控制写入指令同步到 AOF?文件的周期 AOF 配置在?redis.windows.conf(Linux 下为 redis.conf)中进行 AOF?配置
AOF 重写简介随着运行时间的推移,AOF 文件会越来越大,为了解决这个问题,Redis 创建一个新的 AOF 文件,用来代替原 AOF 文件,两个文件保存的数据库状态相同,但新的 AOF 文件中,将指令进行整理、合并,不再包含任何浪费空间的冗余指令,这一过程称作 AOF 重写 重写规则
手动重写bgrewriteaof 指令:与 bgsave 类似,Redis 进程会执行 fork 操作创建子进程,在子进程中执行 AOF 重写 自动重写
通过 info 指令可以查看如下两个参数 aof_current_size:当前 AOF?文件的大小 aof_base_size:上一次重写时 AOF 文件的大小,初始为 0 当 (aof_current_size - aof_base_size) /?aof_base_size ≥ auto-aof-rewrite-percentage ,也就是上一次重写后,文件的增长比例超过设定范围(初始状态除外),且?aof_current_size >?auto-aof-rewrite-min-size ,则自动调用 bgrewriteaof 指令进行重写 AOF 重写缓冲区客户端传来写命令除了存放在 AOF 缓冲区,还会存放在 AOF 重写缓冲区,在重写时,将其中的数据重写后,合并替换原先的 AOF 文件 AOF 缓冲区为什么不能替代 AOF 重写缓冲区? AOF 重写缓冲区记录的是从上次重写开始后的所有需要重写的指令,而 AOF 缓冲区不断的进行持久化,可能只记录了剩下来的部分指令 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 1:27:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |