8、Redis
具体参考:
面试到一问是redis的应用:缓存、消息队列、分布式锁、限流。
redis 的保存策略:RDB、AOF(持久化)
RDB:保存的是数据;占用存储空间小,存储速度慢,恢复快,数据有可能会丢失,用bgsave指令保存 AOF:保存的是指令;占用存储空间大,存储速度快,恢复慢,安全性高 选择和应用场景:如果对数据敏感(安全性考虑),建议采用AOF策略,同时AOF的性能也比较高
-
第一阶段:建立连接阶段。slave主动连接master,通过配置文件形式。
-
第二阶段:数据同步阶段。分为部分复制和全量复制。
-
第三阶段:命令传播阶段。为数据同步阶段服务。
slave发送同步指令给master(runid和offset为空),master接受到指令后执行bgsave生成RDB文件,纪录当前偏移量offset,将runid 和 offset 发送给slave,slave 做保存,接受到的RDB进行数据恢复。实现全量复制。
slave发送同步指令给master(runid和offset 是之前保存的信息),master收到runid和offset后进行比对;
如果有一个不满足,重走全量复制;
如果校验通过,offset和runid忽略;
如果offset不同,将复制缓冲区的内容发送给slave实现部分复制。
一、主从复制模式
二、哨兵模式 :
就是对mater和slave的不断监控,当出现问题时,几个哨兵能做出投票决策,找到下一个master,并维持redis之间的稳定。
三、cluster 模式(分片模式):
如果Redis只用复制功能做主从,那么当数据量巨大的情况下,单机情况下可能已经承受不下一份数据,更不用说是主从都要各自保存一份完整的数据。在这种情况下,数据分片是一个非常好的解决办法:每台机器节点上存储不同的内容。
Redis的Cluster正是用于解决该问题。它主要提供两个功能:
-
自动对数据分片,落到各个节点上
-
(一)纯内存操作
(二)单线程操作,避免了频繁的上下文切换
(三)采用了非阻塞I/O多路复用机制

浙公网安备 33010602011771号