Redis学习笔记系列
- Redis学习笔记(一):下载与安装-Windows、Linux
- Redis学习笔记(二):数据类型和通用操作命令
- Redis学习笔记(三):Java连接Redis(Jedis)以及示例代码
- Redis学习笔记(四):Redis持久化
- Redis学习笔记(五):Redis事务-multi、exec、discard、锁、分布式锁、死锁
- Redis学习笔记(六):删除策略、逐出算法
- Redis学习笔记(七):redis高级数据类型及应用场景-Bitmaps、HyperLogLog、GEO
- Redis学习笔记(八):redis主从复制-建立连接、数据同步、命令传播、复制缓冲区、复制偏移量、心跳机制
- Redis学习笔记(九):哨兵模式-监控、通知、故障转移
- Redis学习笔记(十):Redis集群-结构设计、集群搭建、集群操作、主从下线、主从切换
- Redis学习笔记(十一):企业级解决方案-缓存预热、缓存雪崩、缓存击穿、缓存穿透、性能指标监控
简介
互联网的”三高“架构:高并发、高性能、高可用。而redis本身是单线程单机的(redis-6.0以后支持多线程),单机具有不稳定,不可靠的特点,极具风险,如果出现机器故障、容量达到瓶颈等等时,都可能会导致数据丢失,甚至对业务造成灾难性打击。为了避免单机redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,连接在一起,并保证数据是同步的。即使其中有一台服务器宕机,其它服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据的冗余备份。
多台服务器连接方案
主从复制:将master中的数据即时、有效地复制到slave中
- 提供数据方:master(负责写数据,执行写操作时,将出现变化的数据自动同步到slave)
* 主服务器、主节点、主库
* 主客户端 - 接收数据方:slave(负责读数据)
* 从服务器、从节点、从库
* 从客户端 - 需要解决的问题:数据同步
- 核心工作:master的数据复制到slave中
主从复制的作用
- 读写分离:master写,slave读,提高服务器的读写负载能力
- 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过对多个从节点分担数据读取负载,大大提高redis服务器并发量与数据吞吐量
- 故障恢