让Redis集群模式搭配哨兵模式一起展现最强高可用性(redis集群与哨兵模式)
Redis是一个实现高性能的内存键值(key-value)存储系统,它可以作为一个数据库、高速缓存数据库及消息中间件,能够支持数据库的持久化及消息的持久化,而且Redis十分易被集群化。但是由于Redis集群模式本身功能并不完善,如果要实现高可用性,就需要借助另一种模式:哨兵模式来实现。
哨兵模式的概念很简单:把几台服务器作为哨兵(sentinel),来监控Redis主从节点的日常变化,若发现主节点宕机,第一时间把从节点提升为主节点,以确保的Redis的高可用性。
我们先来看下如何使用 Redis 集群搭配哨兵模式一起展现最强的高可用性:
1. 先启动几台哨兵服务器,把它们都配置为可监控redis Deployment实例,哨兵服务器会通过配置文件实时监控 Redis 集群中的主节点变化。
2. 再启动Redis集群,部署多台Redis服务器,通过合理配置(例如把主节点分散在不同的服务器上),尽量保证Redis的高可用性。
3. 最后确认Redis集群及哨兵服务器都已启动,此时你的Redis 就能够在哨兵服务器和Redis 集群之间联动,以展现最强的高可用性能。
举例来说,假如现在有3台服务器,分别是server1、server2、server3,你可以在这些服务器上启动若干个Redis实例,把server1设置为主节点,其他两台服务器各设置一个从节点:
“`
# server1
$ ./redis-server –role master
# server2
$ ./redis-server –role slave –slavedof server1
# server3
$ ./redis-server –role slave –slavedof server1
同时,你还需要在这三台服务器上开启各一个哨兵实例:
# server1
$ ./redis-sentinel –sentinel monitor server1 server1 6379
# server2
$ ./redis-sentinel –sentinel monitor server2 server2 6379
# server3
$ ./redis-sentinel –sentinel monitor server3 server3 6379
当这些都配置好后,这三台服务器就会紧密结合,实现最强的高可用性:迅速地发现Redis的故障,以及快速的故障转移机制,确保系统的可用性。
使用 Redis 集群模式搭配哨兵模式一起,这种结合机制可以更加可靠稳定的保证Redis的高可用性,只要把 Redis 和哨兵服务器的部署一起考虑,就可以轻松实现 Redis 的高可用能力。