集群
根据上一篇说的afk理论,则会出现一个问题,那就是CAP原则中的问题。高可用性、高一致性、高容错性只能三选二。
在redis中,redis的原则就是“快”!
所以需要利用kafka来实现数据的最终一致性。
当client保存一条数据到redis中时,主redis将数据存入kafka中,并且直接返回客户端保存成功。从redis会从kafka中读取数据,保存到本地。实现数据的最终一致性。
主从
可以在客户端中输入
REPLICAOF 127.0.0.1 6379
作为6379的从redis。
也可以在配置文件中直接配置master
哨兵
当启用redis主从配置时,当主宕机,则可以使用哨兵来自动更换主结点,保证redis的可靠性。
为了保证哨兵的可靠性,哨兵也可以采用集群模式,并且采用奇数个数的哨兵,这样每次主redis挂掉时,哨兵们会进行投票,得到一半票以上的从redis会升级为主redis。
所有哨兵只需要连接到主redis中即可,就可以知道所有的从redis、和其他的哨兵。哨兵们通过订阅、发布功能,来进行心跳检测和投票操作。
哨兵的启动其实是包含在Redis-server执行文件中。启动方式为:
1.配置文件
port 16379 sentinel monitor mymaster 127.0.0.1 6379 1
2.启动
redis-server --sentinel sentinel_16379.conf