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。