redis集群 主从同步 备份

redis备份

redis有两种备份方式:RDB AOF

RDB:这种方式是redis主进程fork一个子进程将内存数据dump到一个临时的RDB文件,在写入完毕后替换之前的RDB文件

AOF:这种方式是redis在接收写入命令的时候,不断append aof文件。当文件到达一定大小的时候进行压缩,压缩是对当前内存的数据整合成若干命令,同时对压缩过程中接收的命令进行缓存,在压缩结束后对缓存中的命令进行append

优缺点

RDB数据恢复快 但是容易丢失数据 同步的时候如果文件特别大 容易卡顿
AOF数据完整 但是数据恢复慢

redis主从同步

主从同步分为:全量同步 增量同步

全量同步:一般发生在slave初始化的时候,会发送一个sync命令给master,master接收到命令的时候fork一个子进程进行rdb操作,在RBD结束之后循环所有的slave 把RDB数据发送给它们。

增量同步:在master接收写命令同步给slave。

redis集群原理

redis集群包括两个东西。一个是solt 一个是cluster,首先集群启动的时候会给16384个solt分配节点。为什么是16384个槽,因为一个槽代表1bit 8bit*1024 =2kb,设计者认为集群的最大节点不超过100 所以一个节点用163个槽是足够的,并且2kb的心跳包能接受。当我们有key过来时 先通过crc16算法得到一个结果然后对16384求余,得到该key的节点信息写入。集群里面的节点是通过心跳连接保持通信的。如果有一半的节点认为一个主节点挂了,那么它的slave节点中选举一个担任master。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明...
    不变甄心阅读 714评论 0 4
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,090评论 2 27
  • 前言 在上一篇文章中,介绍了Redis内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复...
    Java架构阅读 2,369评论 3 21
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    空语阅读 1,616评论 0 2
  • 题目1: 轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?(比如 play()) 轮...
    Gia_Mo阅读 177评论 0 0