在 Web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)
在 Redis 层面,高可用的含义要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术等),还需要考虑数据容量扩展、数据安全等等。在Redis中,实现高可用的技术主要包括持久化、主从复制、哨兵机制和集群,下面简单说明它们的作用,以及解决了什么样的问题:
-
持久化:持久化是最简单的高可用方法。它的主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。
-
主从复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份以及对于读操作的负载均衡和简单的故障恢复。缺陷是故障恢复无法自动化、写操作无法负载均衡、存储能力受到单机的限制。
-
哨兵:在复制的基础上,哨兵实现了自动化的故障恢复。缺陷是写操作无法负载均衡,存储能力受到 单机的限制。
-
集群:通过集群,Redis 解决了写操作无法负载均衡以及存储能力受到单机限制的问题,实现了较为完善 的高可用方案。
机制 | 作用 | 缺点 |
---|---|---|
持久化 | 数据备份 | 单机,无容灾机制 |
主从复制 | 数据冗余、故障恢复、读负载均衡 | 故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制 |
集群 | 数据分片,读写负载均衡,故障自动恢复,分布式 | 不支持事务,批量操作,多数据空间 |
网友评论