RedisCluster是Redis的分布式模式,主要有三种集群模式:主从、sentinel和RedisCluster。本文主要讲解RedisCluster的实现和高可用性保障。RedisCluster实现RedisCluster通过一致性哈希技术,将数据分布在,哈希槽中,每个槽关联一个节点。每个节点负责处理分配给它的槽内的数据。Jedis使用JedisCluster类来访问。使用Jedis带的客户端分片ShardedJedisPool类。使用代理进行分片twemproxy,连接代理可以使用Jedis类(单链接)和JedisPool类(多链接)。通过Redis的sentinel机制还可以配置高可用集群,一主多从,主down掉后,sentinel负责选拔一个从机作为新的主机。如果有什么疑问,可以留言。
不能水平扩容,并且这两个模式的高可用特性都会受到Master主节点内存的限制。Sentinel(哨兵)进程是用于监控redis集群中Master主工作的状态,在Master主发生故障的时候,可以实现Master和Slave的切换,保证系统的高可用。原先我们的redis集群有四种角色,SmartClient,redis,sentinel,ZooKeeper。为了支持动态扩容,我们增加了一个角色,redis_cluster_manager(以下简称manager),用于管理redis集群。主要工作是初始化集群(即预分片),增加实例后负责修改ZooKeeper状态。
应用:通过读写分离提高可用性,但从节点为只读,写操作受限。哨兵(Sentinel)哨兵用于监控主从节点健康,当主节点故障时,自动切换并提供新的主节点信息,保证服务连续性。集群(Cluster)集群提供数据分布和高可用性,多个节点协作处理数据,尤其在高负载场景下优势明显。至少需要,主节点和额外从节点。在Redis高可用搭建中,主从(replication)与哨兵模式(sentinel)以及集群模式(cluster)是实现系统稳定与数据安全的关键。首先,主从是Redis高可用的基础。主机负责写入和读取操作,而从机则仅负责读取操作,不能进行写入。确保搭建完成时,所有主机绑定静态IP,避免频繁切换IP影响系统稳定性。
RedisSentinel包含了若干个Sentinel节点,这样做也带来了两个好处:对于节点的故障判断是由多个sentinel节点共同完成,这样可以有效地防止误判,即使个别sentinel节点不可用,整个sentinel集群依然是可用的哨兵实现了以下功能:。目前,WINDOWS,AdvancedServer与WINDOWS,DataCenterServer都集成有更先进集群技术。其它的网络操作系统平台上也有许多集群软件,比如:基于novell平台的集群软件有NovellHAServer、NovellSFTIII基于scoUNIX平台的集群软件有Sentinel集群软件基于Linux平台的集群软件有TurboCluster。
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容