redis的多机数据库实现,主要分为以下几种:
1,主从复制
2,哨兵模式
3,Redis官方提供的Cluster集群模式(服务端)
4,Jedis sharding集群(客户端sharding)
5, 利用中间件代理,比如codis等
其中前三个为服务器端方案 后两个为客户端分区方案,类似于分表分库方案
主从复制(Master-Slave Replication):
实现主从复制(Master-Slave Replication)的工作原理:Slave从节点服务启动并连接到Master之后,它将主动发送一个SYNC命令。Master服务主节点收到同步命令后将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave从节点服务在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master主节点继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。
如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
主从模式的优缺点
优点:
缺点:
其实redis的主从模式很简单,在实际的生产环境中是很少使用的,我也不建议在实际的生产环境中使用主从模式来提供系统的高可用性,之所以不建议使用都是由它的缺点造成的,在数据量非常大的情况,或者对系统的高可用性要求很高的情况下,主从模式也是不稳定的。
哨兵模式:
该模式是从Redis的2.6版本开始提供的,但是当时这个版本的模式是不稳定的,直到Redis的2.8版本以后,这个哨兵模式才稳定下来,无论是主从模式,还是哨兵模式,这两个模式都有一个问题,不能水平扩容,并且这两个模式的高可用特性都会受到Master主节点内存的限制。
Sentinel(哨兵)进程是用于监控redis集群中Master主服务器工作的状态,在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用。
Sentinel(哨兵)进程的作用
Sentinel(哨兵)进程的工作方式
哨兵模式的优缺点
优点:
缺点:
Redis官方 Cluster集群模式
Redis Cluster是一种服务器Sharding技术,3.0版本开始正式提供。
集群通过分片来进行数据共享,并提供复制和故障转移功能。一个Redis集群通常由多个节点组成;最初,每个节点都是独立的,需要将独立的节点连接起来才能形成可工作的集群。
Redis中的集群分为主节点和从节点。其中主节点用于处理槽;而从节点用于复制某个主节点,并在被复制的主节点下线时,代替下线的主节点继续处理命令请求。
集群模式将在下一篇文章详细讲解。
Jedis sharding集群
这是一个客户端分区方案
Redis Sharding可以说是在Redis cluster出来之前业界普遍的采用方式,客户端就已经决定数据会被 存储到哪个redis 节点或者从哪个 redis 节点 读取数据。其主要思想是采用 哈希算法 将 Redis 数据的 key 进行散列,通过 hash 函数,特定的 key会 映射 到特定的 Redis 节点上。
庆幸的是,Java Redis客户端驱动Jedis已支持Redis Sharding功能,即ShardedJedis以及结合缓存池的ShardedJedisPool
Jedis的Redis Sharding实现具有如下特点:
当然,Redis Sharding这种轻量灵活方式必然在集群其它能力方面做出妥协。比如扩容,当想要增加Redis节点时,尽管采用一致性哈希,毕竟还是会有key匹配不到而丢失,这时需要键值迁移。
作为轻量级客户端sharding,处理Redis键值迁移是不现实的,这就要求应用层面允许Redis中数据丢失或从后端数据库重新加载数据。但有些时候,击穿缓存层,直接访问数据库层,会对系统访问造成很大压力。
利用中间件代理
客户端发送请求到一个 代理组件,代理解析客户端的数据,并将请求转发至正确的节点,最后将结果回复给客户端。
优点:简化 客户端 的分布式逻辑,客户端 透明接入,切换成本低,代理的 转发 和 存储 分离。
缺点:多了一层 代理层,加重了 架构部署复杂度 和 性能损耗。
随之服务器的飞速发展,从物理服务器中发展趋势到云服务器的普及化,全是服务器...
要实现nginx的高可用,需要实现备份机。 1.1. 什么是负载均衡高可用 nginx作为负...
网络时代,无论是初创公司還是已完善的企业,挑选一台性能、安全性、高效率的云...
前言 在博客系统中,为了提升响应速度,加入了 Redis 缓存,把文章主键 ID 作为 ...
戴尔科技集团宣布,向中国青少年发展基金会紧急捐款人民币200万元,专项用于抗击...
专家建议,对于因COVID-19疫情而面临有限IT预算和裁员的企业架构团队,应抓住时...
这个春天,一场全球疫情让绝大部分体育赛事停摆,然而,当视频游戏公司EA Sports...
1.有的人,曾经是无话不说,到最后,却无话可说。 2.总有一天我会累、会烦、会...
IT管理者在组织的业务运营中发挥了重要作用。随着冠状病毒疫情导致很多组织的员...
2020年是改变企业运营方式的重要一年。随着业务运营方式的改变,以前没有采用云...