redis主要有几种模式:
- 主从模式
- 哨兵模式
- 集群模式
1、 主从模式
基于主从复制的特性,一般有一个主节点,多个从节点,默认是我们可以从主节点写,写入的数据会自动备份到从节点,可以从从节点读取数据。
这样做的好处是,解决单台redis的读请求的瓶颈,可以横向扩容读请求,相当于做到了读请求的负载均衡。
从节点也是可以支持写的,但是不会复制到其他节点,所以我们基本不这么干。
这样做的缺陷是什么:
1.redis的主节点很重要,挂了就没有了,一挂整个集群都有问题。
2.redis写请求很多怎么办?我还不想用消息队列,就想在redis上实现(实际上写请求很多的时候可以适当用消息队列)
2、 哨兵模式
哨兵模式,和主从模式不是互斥的,反而他们一般是同时存在的,为了提高redis的高可用性存在的。如果是单独的主从架构,那么主节点挂了,问题就很大了。一般服务器宕机,停电或者硬件有问题,主节点可能会有问题。有问题的时候,哨兵模式能够帮我们快速地纠正。
哨兵一般是依靠主从模式的,也就是在主从结构上,加上了哨兵模式,一旦主节点宕机,就可以通过几个哨兵选举,产生新的主节点,自动调整过来。哨兵本质上也是redis,但是它不做数据存储,只负责监控,通知,故障转移等工作,一般部署的端口和redis是不一样的,可以选择部署在同一个机器上。