Redis简介
Redis是一个高性能的开源内存数据库,被广泛应用于缓存、会话存储、实时分析、消息队列等多个领域。其独特的特性,包括快速的读写操作、支持多种数据结构(如字符串、哈希、列表、集合、有序集合等)、持久化支持、以及灵活的扩展性,使得它成为许多应用架构中不可或缺的组件。
随着应用规模的不断增长,单节点Redis的性能和容量限制成为了一些应用所面临的挑战。为了满足更大规模的数据存储需求、提高系统的可用性和稳定性,引入Redis集群成为了一种常见的解决方案。
Redis集群简介
Redis有三种主要的集群模式,用于在分布式环境中实现高可用性和数据复制。这些集群模式分别是:主从复制(Master-Slave Replication)、哨兵模式(Sentinel) 和Redis Cluster模式。
一、主从复制模式
主从复制是Redis最简单的集群模式。这个模式主要是为了解决单点故障的问题,所以将数据复制多个副本中,这样即使有一台服务器出现故障, 其他服务器依然可以继续提供服务。
主从模式中,包括一个主节点(Master) 和一个或多个从节点(Slave) 。主节点负责处理所有写操作和读操作,而从节点则复制主节点的数据,并且只能处理读操作。当主节点发生故障时,可以将一个从节点升级为主节点,实现故障转移(需要手动实现)。
优点:
-
主从复制的优势在于简单易用,适用于读多写少的场景。它提供了数据备份功能,并且可以有很好的扩展性,只要增加更多的从节点,就能让整个集群的读的能力不断提升。
劣势:
-
最大的缺点,就是不具备故障自动转移的能力,没有办法做容错和恢复。
实现方式:
主从集群架构图:
现在需要准备3个实例,因为在同一台电脑上操作,所以我们准备3份不同的配置文件和目录就可以了
1)创建目录
创建3个目录,6001,6002,6003 文件夹,复制 redis 配置文件到这三个文件夹中,6001 为 master主,6002和6003位slave从
2)修改配置
修改redis的配置文件,持久化模式(文章末尾有介绍)改为默认的RDB模式,AOF保持关闭状态,并设置端口为6001、6002、6003,设置rdb文件路径
#设置端口号
port 6001
#开启RDB模式
save 900 1 # 在900秒(15分钟)内,如果至少有1个键被修改,则生成快照
save 300 10 # 在300秒(5分钟)内,如果至少有10个键被修改,则生成快照
save 60 10000 # 在60秒内,如果至少有10000个键被修改,则生成快照
# 关闭AOF
appendonly no
#更改rdb文件路径
dir ./6001/
3)开启主从关系配置
只需在两台从redis配置文件中写入一段配置
slaveof <masterip> <masterport>
slaveof 127.0.0.1 6001
注意:如果master主redis需要密码,需要增加一段配置
masterauth <password>
4) 启动redis
#启动6001
redis-server.exe 6001/redis.windows.conf
#启动6002和6003
redis-server.exe 6002/redis.windows.conf
redis-server.exe 6003/redis.windows.conf
5)测试
通过redis-cli连接redis命令:
# -h 服务IP -p 端口 -a 密码
redis-cli.exe -h 127.0.0.1 -p 6001 -a 111111
-
使用redis-cli连接6001,执行set str 666
-
使用redis-cli连接6002,执行get str
从服务器只处理读操作,我们可以看到,主 redis 存储的值,我们通过两台从服务器都可以获取。
其他知识点:
关于redis的持久化模式介绍:
RDP:
RDB是将Redis的内存中的数据定期保存到磁盘上,以防止数据在Redis进程异常退出或服务器断电等情况下丢失。
-
优点:快照文件小。恢复速度快,适合做备份和灾难恢复。
-
缺点:定期更新可能会丢数据
AOF:
AOF是将Redis的所有写操作追加到AOF文件(Append Only File)的末尾,从而记录了Redis服务器运行期间
所有修改操作的详细记录。当Redis重 新启动时,可以通过执行AOF文件中保存的写操作来恢复数据。
-
优点:可以实现更高的数据可靠性、支持更细粒度的数据恢复适合做数据存档和数据备份。
-
缺点:文件大占用空间更多,每次写操作都需要写磁盘导致负载较高
关注我,学习更多简单好理解的编程和架构知识!明天分享第二篇哨兵模式(Sentinel)。
关注我 不迷路 微信扫