redis为保证数据的完整性、故障恢复, 提供了多种方式; 这多种方式可以组合使用。

回写:

0)redis命令, 主动回写磁盘

-----save: 同步回写,阻塞所有后续读写请求, 直至save操作完成。 数据量大时可能假死很长时间。

-----bgsave: 异步回写,主进程fork子进程, 子进程复制了主进程的内存地址空间;子进程回写磁盘、写完自动退出。 数据量大时仍然比较耗时, 而且需要占用一倍的内存空间。

ps, 这是单机版。。。

数据持久化:

1) RDB。  snapshot方式。 redis按照规则达到一定条件时,fork出子进程, 子进程复制了redis server的完整内存空间。  子进程将内存数据全量保存到磁盘上。 但两次快照之间的会丢掉。 类似于bgsave

2)AOF。 类似于mysql的binlog, redis将每条写命令都append到AOF文件中。

replication:

4)  Master--Slave。 redis的Master和Slave之间有一套交互协议,Slave连上Master后发送SYNC, Master fork子进程复制全量数据发送给Slave、并将这段以及后续的写命令发给Slave; Slave据此重构出数据。  Slave每次重连Master, 都会导致一个全量拷贝、传输。

只需要在A上用slaveof B 即可; B就是A的master了。

因此,较理想的架构就是

Master-------Slave;

Master上关闭RDB/AOF等; Slave上开启RDB/AOF。  恢复时AOF的优先级比RDB高。

为解决Master的单点, 可以主动同时写多个Master。

presharding在线给redis扩容。 需要在低峰时段或者短暂停服。

http://blog.chinaunix.net/uid-20682890-id-3603246.html

http://www.cnblogs.com/stephen-liu74/archive/2012/02/23/2364717.html

http://in.sdo.com/?p=1187

redis 数据完整性相关推荐

  1. 如何从0到1构建一个稳定、高性能的Redis集群?(附16张图解)

    阅读本文大约需要 13 分钟. 大家好,我是 Kaito. 这篇文章我想和你聊一聊 Redis 的架构演化之路. 现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Red ...

  2. 16张图带你吃透高性能 Redis 集群

    现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Redis 时,有没有思考过,Redis 到底是如何稳定.高性能地提供服务的? 你也可以尝试回答一下以下这些问题: 我使 ...

  3. 详解Redis的架构演化之路(附16张图解)

    阅读本文大约需要 13 分钟. 这篇文章我想和你聊一聊 Redis 的架构演化之路. 现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Redis 时,有没有思考过,Re ...

  4. 16 张图教你如何从 0 到 1 构建一个稳定、高性能的 Redis 集群!

    作者 | Magic Kaito   责编 | 张文 来源 | 水滴与银弹(ID:waterdrop_bullet) 这篇文章我想和你聊一聊 Redis 的架构演化之路. 现如今 Redis 变得越来 ...

  5. Redis安装与调试

     Redis安装与调试 Redis安装与调试linux版本:64位CentOS 6.5 Redis版本:2.8.17  (更新到2014年10月31日) Redis官网:http://redis. ...

  6. Redis以及Redis的php扩展安装无错版

    安装Redis 下载最新的 官网:http://redis.io/  或者  http://code.google.com/p/redis/downloads/list 第一步:下载安装编译 #wge ...

  7. Redis安装与源码调试

    linux版本:64位CentOS 6.5 Redis版本:redis-3.0.6  (更新到2016年1月22日) Redis官网:http://redis.io/ Redis常用命令:http:/ ...

  8. Redis源码解析——字典结构

    C++语言中有标准的字典库,我们可以通过pair(key,value)的形式存储数据.但是C语言中没有这种的库,于是就需要自己实现.本文讲解的就是Redis源码中的字典库的实现方法.(转载请指明出于b ...

  9. 面试官:你说你精通Redis,你看过持久化的配置吗?

    前边我们已经介绍了Redis五种数据类型的命令与配置文件的基本配置,今天让我们从理论和配置两个层面来揭开Redis持久化的神秘面纱. 所谓持久化可以简单理解为将内存中的数据保存到硬盘上存储的过程.持久 ...

最新文章

  1. UE5真实环境设计入门学习教程
  2. Spring Boot + MDC 实现全链路调用日志跟踪,这才叫优雅!
  3. 【Tomcat】Unrecognized Windows Sockets error: 10106: Socket creation failed
  4. hibernate5.2.10.Final基本配置
  5. asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问
  6. C语言之字符数组在if{}里面赋值给char *引发的问题
  7. numpy 数组访问方式_索引、切片、迭代
  8. 旋转炫酷相册-快制作你喜欢源码
  9. VMware NSX part 1(介绍) part 2(NSX-Manager安装) part 3(NSX Controller部署)
  10. Linux入门之inode解析及管道重定向
  11. 如何做好软件安全性测试?
  12. ROS智能车自主导航roslaunch racecar_gazebo racecar_runway_navigation.launch报错
  13. mapreduce 和hive 的区别
  14. CoreAnimation动画入门(总结)
  15. 3分钟快速了解猪齿鱼权限
  16. CNT-以太网帧和IEEE802.3帧
  17. java实用教程第五版_java2实用教程(第5版)重要点及遗漏点(一)
  18. 助教日志_【沈阳航空航天大学软件工程 1,2 班】团队作业排行
  19. GPON Type B保护
  20. php int 32 64,php从32位升级到64位需要注意的几点

热门文章

  1. Batch Normalization 学习笔记
  2. caffe预测、特征可视化python接口调用
  3. git revert 用法
  4. git cherry-pick改写提交
  5. Java程序员从笨鸟到菜鸟之(八十五)跟我学jquery(一)爱之初体验jquery
  6. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
  7. 反向传播神经网络 BPNN
  8. 趣味编程:函数式链表的快速排序(参考答案)
  9. Stanford UFLDL教程 线性解码器
  10. Python零基础学习笔记(二十二)—— set