redis作为集中式的数据库中间件,它具有持久化的能力,但是需要容许少量数据的丢失。
单机版
生成环境不建议使用,有单点故障风险。一旦单台结点出现故障,可能会导致整个服务不可用
sentinal哨兵模式
另外引入一台结点redis sentinal(哨兵),会与其他的redis结点保持长连接(心跳机制),它实时地感应到其他redis结点的状态,客户端进行访问时,会向redis sentinal询问可用的redis服务结点,redis sentinal会返回可用的redis结点的信息。客户端获取到信息后再去访问对应的redis结点,并且会将连接信息保存到本地。
当可用的redis结点信息发生变化的时候,redis sentinal会调整对应的结点关系(主从关系),然后向客户端发送一个change通知,告诉它redis结点发生变化,客户端就会重新想redis sentinal发送请求获取新的结点信息。
当redis结点中有多个主从复制,客户端如何知道何时将请求发给哪个master呢?
客户端本地维护了一个分片机制,它通