一、闲话
最近染上了新冠,整整在家休息了一周,然后就遇上某些很c蛋的事,更加坚定了我要抓紧学习跳槽的念头,再苟一苟,小不忍则乱大谋~
二、基本概念
1、什么是redis集群
- Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N
- Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求
2、redis集群的作用
- 容量不够,使用集群进行扩容
- master节点负责写操作,在高并发的写操作场景,master节点就会成为性能瓶颈, 使用集群分摊压力
- 主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息,无中心化只需要配置一个一个节点即可,节点间可相互访问
3、redis集群的劣势
- 不支持多键操作,即mset,除非分组,比较麻烦
- 多键的redis事务不支持,而且不支持lua脚本
- 在集群出现之前,很多公司都是使用通过代理主机来解决数据的分区,通过代理主机决定往哪个分区上发送请求,这样往无中心化集群迁移起来比较麻烦
三、搭建redis集群
因为我本地只有一个虚拟机,所以我通过多端口启动redis来模拟集群
- 创建一个目录/redisCluster用来存放配置文件,创建端口号6379对应的配置文件
- 6379端口对应的配置文件内容如下,重点是后面追加的三个
include /myredis/redis.conf
pidfile /var