前言
上一篇介绍了 Redis 应对并发问题的方案。这节开始介绍 Redis 的主从模式。
由于 Redis 是基于内存的,一旦发生崩溃就会导致数据的丢失,所以单个 Redis 实例并不能保证数据的可靠性。
为了应对高可靠性要求的场景,可以使用多个 Redis 实例作为某个节点的备份实例,从而实现了主从架构。
从节点可以作为主节点的备份节点,当主节点崩溃时,由于各个节点间的数据是相同的,还能够切换节点来保证整个集群的可靠性。使用了主从架构后,主从节点还可以分别处理写请求和读请求,从而实现了水平扩展,提高了整体的性能。
所以,使用主从架构有以下几个好处:
- 提高可靠性:从节点可以视为主节点的备份节点,且当主节点故障时,可以替代主节点继续运行;
- 提高性能:可以采用读写分离,减少主节点的负载;
- 水平扩展:如果集群的读压力很大,可以添加从节点来分担。
主服务器可以进行读写操作,当发生写操作时(写入数据、key 的过期或驱逐等)自动将写操作同步给从服务器;而从服务器一般是只读,并接受主服务器同步过来的写操作命令,然后执行这条命令。
# 服务器 B 执行命令后,就成了服务器 A 的从服务器
replicaof <服务器 A 的 IP 地址> <服务器 A 的 Redis 端口号>
主从复制
从节点是主节点的数据备份,同时也要处理读请求,所以要尽量保证主从数据一致。
主从复制,是指将主节点(master)上的数据,复制到其他从节点(slave)上。数据的复制是单向的,只能由主节点到从节点。
主从复制可以分为全量复制和增量复制。