Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDBAOF混合使用
补充一个知识
缓存:数据可以丢,保证速度。
数据库:数据是绝对不能丢的,保证速度+持久性,内存中的数据是掉电易失的。
存储层:
- 快照/副本
- 日志文件
$$
优先级高于管道
fork()
fork是系统调用,copy on write是内核机制。
写时复制
在fork子进程的时候,只拷贝指针,并不发生内存的复制。
只有当其中的某一个进程试图对该区域进行写操作时,内核就会在物理存储器中为子进程开辟一个新的物理页面,将需要写的区域将父进程的内容复制一份给子进程,然后对新的物理页面进行写操作。
这时就是实现了对不同进程的操作而不会产生影响其他的进程,同时也节省了很多的物理存储器。
并且根据经验来看,不可能父子进程将所有数据都改一遍。下图redis也用了这个机制,而且redis的子进程不会去修改数据:
- 可以用ref记录被引用的数量
redis 子进程用来RDB持久化落盘,父进程用来提供服务:
RDB:快照,副本
时点性,是每隔一段时间存一下
- 阻塞,redis不对外提供服务
AOF:追加日志 append only file
redis的写操作记录到文件中,类似于mysql的binlog
- 非阻塞,redis继续对外提供服务
- 同时数据能够落地
- RDB和AOF可以同时开启。如果开启了AOF,重启服务器的时候,只会用AOF恢复。
- 4.0版本之后,AOF中包含RDB全量,增加记录新的写操作。
RDB的改进
Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDBAOF混合使用相关推荐
- 深入剖析Redis系列(五) - Redis数据结构之字符串
前言 字符串类型 是 Redis 最基础的数据结构.字符串类型 的值实际可以是 字符串(简单 和 复杂 的字符串,例如 JSON.XML).数字(整数.浮点数),甚至是 二进制(图片.音频.视频),但 ...
- redis(二)redis实战 使用redis进行文章的排序
2019独角兽企业重金招聘Python工程师标准>>> http://www.beckbi.cn/?p=172 redis实战使用redis进行文章的排序 转载于:https://m ...
- Redis实战之Redis + Jedis
用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...
- Redis实战 - 09 Redis BitMaps 实现用户签到,统计签到次数,统计签到情况等功能
文章目录 1. 需求分析 2. 设计思路 3. 用户签到和统计连续签到的次数 1. 签到控制层 SignController 2. 签到业务逻辑层 SignService 3. 测试 4. 按月统计用 ...
- redis学习(五) redis实现购物车
<redis实战> 第二章 每个用户的购物车都是一个散列,这个散列存储了商品ID与商品订购数量之间的映射 对商品数量的验证由web应用程序负责,我们要做的就是在商品订购的数量出现变化时,对 ...
- redis之二十八 -- Redis实战:Redis 主从同步
主从同步(主从复制)是 Redis 高可用服务的基石,也是多机运行中最基础的一个.我们把主要存储数据的节点叫做主节点 (master),把其他通过复制主节点数据的副本节点叫做从节点 (slave),如 ...
- 【Redis实战】Redis是什么?
Redis(Remote Dictionary Server)是一个key-value的NoSQL产品,数据都是缓存在内存中,周期性的数据持久化. Redis是一个开源的使用ANSI C语言编 ...
- redis实战:使用redis实现自动补全
转载:http://blog.csdn.net/u011250882/article/details/48632379 如果我想输入"雄英"来找到游戏库中的所有带有这两个字的游戏, ...
- Redis实战 - 11 Redis GEO 实现附近的人功能
各种社交软件里面都有附件的人的需求,在该应用中,我们查询附近1公里的食客,同时只需查询出20个即可. 文章目录 1. Redis GEO常用命令 2. 上传用户地理位置 1. RedisKeyCons ...
- Redis实战 - 15 Redis事务机制和乐观锁实现
文章目录 1. Redis事务简介 2. Redis事务的操作命令 3. Redis的事务回滚 4. Redis监控事务 1. Redis事务简介 在 Redis 中,也存在多个客户端同时向 Redi ...
最新文章
- java代码读取dbsequence的值_MongoDB自增序列实现 - Java多线程同步 synchronized 用法
- 知云文献翻译登录时不显示二维码,显示二维码后扫描登录不跳转解决方案
- [C++] 我们需要掌握多少语法细节
- 调用手机相机相册_如果你用华为手机拍照!记得开启专业模式,照片好看十倍不止...
- 多线程顺序交替打印ABCD
- rabbitmq导出队列_消息队列BCMQ在大云运维管理平台BCDeepWatch中的应用
- Oracle表的并行度
- 服务器性能评价体系,基于ServerScope平台TPCW性能评价
- Nodejs V8引擎 fast property lookup
- Python技术知识清单(数据科学)
- C#中可以使用正则表达式来过滤html字符
- Java中文汉字转汉语拼音
- 学子商城项目1(项目 第十六阶段)
- Windbg(蓝屏分析工具)v10.0.18362.1版本更新
- mysql有rollup函数吗_MySQL-with rollup函数运用
- jdk中运行java程序的工具,采用JDK工具编译运行java程序
- 《云周刊》第121期:图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!...
- 2022基于云开发的去水印小程序源码
- 心电算法准确性评价总结
- 既然android service是运行在主线程中的,那service还有什么用?
热门文章
- CodeForces - 706D Vasiliy's Multiset(字典树删除操作)
- html5 fc,HTML5_mob604756fc093d的技术博客_51CTO博客
- cmi编码用c语言实现,CMI编码与解码
- 【Boost】boost库中function和bind一起使用的技巧(二)
- chromium net android移植
- 边缘计算、区块链、5G,哪个能走的更远
- 深入理解RCU | RCU源码剖析
- 为什么说项目管理是每个人必备的底层能力?
- OS- -调度(一)
- 二叉堆详解实现优先级队列