| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Redis持久化 RDB与AOF -> 正文阅读 |
|
[大数据]Redis持久化 RDB与AOF |
redis通过RDB与AOF实现了数据持久化 1.RDBrdb即redis database。redis数据库。当在redis中的数据储存满足配置文件中的要求时 (如图,分别是一小时修改一个键,5分钟之内修改100个键,1分钟只能有超过10000个键被修改),redis就会在redis的根目录下生成一个dump.rdb文件,这个dump.rdb文件就存储着这个时间段内修改过的键值对的信息。 当redis服务关闭,所有存放的信息都从内存中消失。当redis再启动时,会首先读取dump.rdb文件中的信息,重新将它们放入内存中。实现数据的持久化。 RDB的实现原理:redis运行时,会创建一个进程用来进行持久化。该进程会将数据写入到一个临时文件中,持久化进程结束后。会用这次的临时文件替换上次的持久化文件。这样就可以保证主线程不进行任何IO操作,保证了效率。 RDB的触发:1.满足配置文件中的情况 2.使用save(阻塞线程进行持久化)与bgsave(异步进行持久化,在后台进行)指令,立即进行持久化 3.使用FLUSHALL或FLUSHDB指令(无意义,因为保存的是空的数据) RDB优点:
RDB劣势:
RDB配置策略:stop-writes-on-bgsave-error? 无法进行备份时停止写入操作?:推荐设置为yes rdbcompression 是否对rdb文件进行压缩:如果追求底cpu消耗的话就设置为no 如果追求底存储空间消耗的话就设置为yes rdbchecksum 检查redis文件的完整性 占用一定的性能消耗,推荐设置为yes 2.AOF(append only file)以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。 默认是关闭的,需要我们手动打开 执行流程(1)客户端的请求写命令会被append追加到AOF缓冲区内; (2)AOF缓冲区根据AOF持久化策略[always 一进行写操作就进行aof持久化 性能差数据完整性好,everysec 每秒进行一次持久化 当这一秒宕机时,该秒的数据会丢失,no 不主动进行持久化操作]将操作sync同步到磁盘的AOF文件中; (3)AOF文件大小超过重写策略或手动重写时,会对AOF文件rewrite重写,压缩AOF文件容量; (4)Redis服务重启时,会重新load加载AOF文件中的写操作达到数据恢复的目的 aof的触发1.进行写操作时 redis实现持久化的顺序先AOF再RDB aof的rewrite:当盛恒的aof文件过大(超过设定值默认为64MB且当aof文件比上次rewrite后扩大一倍)时,会进行rewrite来压缩aof文件的大小。只保留可以恢复数据的最小指令集.可以使用命令bgrewriteaof 原理: AOF文件持续增长而过大时,会fork出一条新进程来将文件重写(也是先写临时文件最后再rename),redis4.0版本后的重写,是指上就是把rdb 的快照,以二级制的形式附在新的aof头部,作为已有的历史数据,替换掉原来的流水账操作。 aof优点
aof缺点
持久化文件的修复当持久化文件被破坏时,可以用redis-check-aof/rdb --fix *.aof或*.rdb进行恢复。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 13:30:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |