原创:享学课堂讲师
转载请声明出处!

RDB

RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis重启会通过加载dump.rdb文件恢复数据。

找到配置文件,在配置redis.conf文件里面找下如下的配置

save 60 1000

这个配置指的是,每隔60s,如果有超过1000个key发生了变更,那么就生成一个新的dump.rdb文件,就是当前redis内存中完整的数据快照,这个操作也被称之为snapshotting快照。

当然你也可以手动调用save或者bgsave命令,同步或异步执行rdb快照生成,同时save可以设置多个,就是多个snapshotting检查点,每到一个检查点,就会去check一下,是否有指定的key数量发生了变更,如果有,就生成一个新的dump.rdb文件。

上面画了个简单的图,描绘的是RDB持久化机制的工作流程,具体来看可以有如下几个步骤:

(1)redis根据配置自己尝试去生成rdb快照文件

(2)fork一个子进程出来

(3)子进程尝试将数据dump到临时的rdb快照文件中

(4)完成rdb快照文件的生成之后就替换之前的旧的快照文件dump.rdb,每次生成一个新的快照,都会覆盖之前的老快照

AOF

AOF :Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

找到配置文件后,你需要修改的第一个配置为:

appendonly yes

以打开AOF持久化机制,在生产环境里面,一般来说AOF都是要打开的,除非你说随便丢个几分钟的数据也无所谓。

打开AOF持久化机制之后,redis每次接收到一条写命令,就会写入日志文件中,当然是先写入oscache的,然后每隔一定时间再fsync一下磁盘文件。

除开appendonly的这个配置项,关于AOF还有一个非常有意思的配置:

appendfsync everysec

这个appendfsync 默认值是everysec,除开这个以外,总共有3个取值的可能:

always: 每次写入一条数据,立即将这个数据对应的写日志fsync到磁盘上去,性能非常非常差,吞吐量很低; 确保说redis里的数据一条都不丢,那就只能这样了。

everysec:每秒将oscache中的数据fsync到磁盘,这个最常用的,生产环境一般都这么配置,性能很高,QPS还是可以上万的。

no:仅仅redis负责将数据写入oscache就撒手不管了,然后后面os自己会时不时有自己的策略将数据刷入磁盘,不可控了。

可见默认值就是最好的选项了

(1)redisfork一个子进程。

(2)子进程基于当前内存中的数据,构建日志,开始往一个新的临时的AOF文件中写入日志。

(3)redis主进程,接收到client新的写操作之后,在内存中写入日志,同时新的日志也继续写入旧的AOF文件。

(4)子进程写完新的日志文件之后,redis主进程将内存中的新日志再次追加到新的AOF文件中。

(5)用新的日志文件替换掉旧的日志文件。

  • Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,则将内存中的数据写入到磁盘中。
  • RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。
  • Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。
  • AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。
  • Redis 针对AOF文件大的问题,提供重写的瘦身机制。
  • 若只打算用Redis做缓存,可以关闭持久化。
  • 若打算使用Redis的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。

如果喜欢本文,可以关注我们的官方账号,第一时间获取资讯。
你的关注是对我们更新最大的动力哦~

今日福利(点击下方文字超链接获取)

如果你的技术提升遇到瓶颈了,或者缺高级Android进阶视频学习提升自己,这有大量大厂面试题为你面试做准备!
点击Android 学习,面试文档,视频收集大整理获取

mac os 开启redis_【漫画】谈谈Redis持久化相关推荐

  1. mac os 开启redis_关于Redis,学会这8点就够了

    一.redis是什么 redis是一种支持Key-Value等多种数据结构的存储系统.可用于缓存.事件发布或订阅.高速队列等场景.该数据库使用ANSI C语言编写,支持网络,提供字符串.哈希.列表.队 ...

  2. mac os 开启redis_在Mac os x 安装 Redis

    :-} 安装 1.下载redis 安装包 打开浏览器输入地址:http://download.redis.io/redis-stable.tar.gz 下载 redis 最新稳定安装包 mac os下 ...

  3. mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群

    现在一般的项目都会用到redis做缓存,也不免有老铁没用过,我就一起说下吧. redis 官网 https://redis.io/ Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库.缓 ...

  4. mac os 开启redis_Mac下配置Redis服务器(自启动、后台运行) | 学步园

    Redis服务器在从诸多文章上看来,是个极为优秀的Key-value数据库软件.其NB之处可以从这篇文章中略知一二. 主要参考 首先是安装,它会默认安装到/usr/local/bin下 cd /tmp ...

  5. mac os 开启redis_mac os 命令行安装 启动和停止 redis

    简介 Redis时一个开源的非关系数据库,支持持久化存储. 安装 Mac os x下安装Redis很简单通过Brew安装即可. 如果没有安装 Brew ruby -e "$(curl -fs ...

  6. Mac OS自带PHP安装redis扩展

    安装redis 在mac OS中可以使用brew命令进行安装redis:mac OS使用brew命令安装软件 安装命令:brew install redis 因为我已经安装过了,这里就不在赘述. 安装 ...

  7. Mac OS 开启“任何来源”

    自 Mac OS 10.12 版本以后,细心的用户会发现,在"系统偏好设置/安全性与隐私"的对话框中已经没有了"任何来源"这个选项了,这对于安装那些从网络上下载 ...

  8. mac os 开启FTP Server

    高版本的mac os默认关掉了FTP服务,打开"终端"之后,可用如下命令打开: sudo -s launchctl load -w /System/Library/LaunchDa ...

  9. redis日志_「漫画」谈谈Redis持久化

    原创:享学课堂讲师 转载请声明出处! RDB RDB 是 Redis 默认的持久化方案.在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中.即在指定目录下生成一个dump.rdb ...

最新文章

  1. 机器人 陆梅东_机器人知识与实践比赛获奖 - 上海徐汇区青少年活动中心
  2. leetcode 73 矩阵置零 Python
  3. 牛客java面试题总结版(一)
  4. java创建线程代码_Java创建与结束线程代码示例
  5. 华为光伏usb适配器_华为系列原装充电器拆解第三弹:比亚迪版华为10W充电器
  6. linux 用户管理以及其他命令
  7. ArcGIS(A column was specified that does not exist)
  8. java socket 编程 客户机服务器_Java Socket编程服务器响应客户端实例代码
  9. 大型分布式Java项目--宜立方商城
  10. Python爬虫实战 | 人民网爬虫 根据关键词筛选新闻文章
  11. 砸金蛋c语言编程,CSS3 简单的砸金蛋样式
  12. 打开office报错提示向程序发送命令时出现问题
  13. 宝宝培养 IOS APP 上线
  14. 苹果cms伪静态常见几种问题解决教程
  15. nginx之allow、deny
  16. 免费备份工具FreeFileSync
  17. Adaptive Clustering-based Malicious TrafficClassification at the Network Edge论文阅读笔记
  18. netgear 网件路由器怎么了
  19. 全球大学生为之打Call,这场ICT大赛已成“懂行人”的起点
  20. 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波

热门文章

  1. 个性化推荐中的数据稀疏性
  2. 中key的用途_Python中的函数定义与参数使用
  3. Android之TextView练习
  4. Java中如何将以byte数组给出的数据转换为double数组形式
  5. “RuntimeError: main thread is not in main loop“的几种解决方案
  6. 【干货】Python中几个有趣的函数
  7. Solr Wiki文档
  8. numpy文件读写的三对函数
  9. [转]一千行MySQL学习笔记
  10. linux - tar压缩解压缩使用,快速记忆方法