| |
|
开发:
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 提供了两种持久化方案:
Ⅰ. RDB 持久化????????RDB 全称 Redis Database Backup file(Redis 数据备份文件),也被叫做 Redis 数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当 Redis 实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为 RDB文 件,默认是保存在当前运行目录。 1.1 执行时机RDB 持久化在四种情况下会执行:
①?save命令 ? 执行下面的命令,可以立即执行一次 RDB: save 命令会导致主进程执行 RDB,这个过程中其它所有命令都会被阻塞。只有在数据迁移时可能用到。 ②?bgsave命令 ? 下面的命令可以异步执行 RDB: 这个命令执行后会开启独立进程完成 RDB,主进程可以持续处理用户请求,不受影响。 ③ 停机时? Redis停机时会执行一次 save 命令,实现 RDB 持久化。 ? ④?触发RDB条件 Redis 内部有触发 RDB 的机制,可以在 redis.conf 文件中找到,格式如下: ?
RDB 的其它配置也可以在 redis.conf 文件中设置:
1.2 RDB 原理bgsave 开始时会 fork 主进程得到子进程,子进程共享主进程的内存数据。完成 fork 后读取内存数据并写入 RDB 文件。 fork 采用的是 copy-on-write 技术:
1.3 RDB 小结RDB 方式 bgsave 的基本流程?
RDB 会在什么时候执行?save 60 1000 代表什么含义?
RDB的缺点?
Ⅱ.?AOF 持久化AOF,英文是 Append Only File,即只允许追加不允许改写的文件。Redis 处理的每一个写命令都会记录在AOF 文件,可以看做是命令日志文件。 2.1 AOF 配置AOF 默认是关闭的,需要修改 redis.conf 配置文件来开启 AOF : ?
AOF 的命令记录的频率也可以通过 redis.conf 文件来配:
三种策略对比: 2.2 AOF 文件重写因为是记录命令,AOF 文件会比 RDB 文件大的多。而且 AOF 会记录对同一个 key 的多次写操作,但只有最后一次写操作才有意义。通过执行 bgrewriteaof 命令,可以让 AOF 文件执行重写功能,用最少的命令达到相同效果。 如图,AOF 原本有三个命令,但是? 所以重写命令后,AOF文件内容就是: Redis 也会在触发阈值时自动去重写 AOF 文件。阈值也可以在 redis.conf 中配置:
Ⅲ. 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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 4:54:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |