文章目录
Redis笔记:
- Redis入门(一)— 五种基本数据类型
- Redis入门(二)— redis新增数据类型,jedis操作redis,springboot整合redis
- Redis入门(三)— 可视化工具,发布订阅,事务管理,持久化RDB,AOF基本概念
- Redis入门(四)— 主从复制,哨兵机制
11、Redis集群
11.1 集群的引入
当一个Redis服务器容量不够用的时候,如何进行扩容?
当并发写操作时,由于只能一主多从,一个Redis服务器用来写显然会不够用,怎么进行分摊?
在没出现集群之前,是通过代理主机来实现的:
缺点:
-
这种方式需要多出两台服务器作为代理服务器的主机和从机
-
同时如果代理服务器挂掉了,就无法再进行服务了
在redis3.0之后,提出了集群的思想:无中心化集群配置:
优点:
- 无中心化:可以访问任意一台服务器,服务器将不是自己该处理的转交给下一个服务器
- 水平扩容:即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。
- 分区提供可用性:及时有一块节点down掉了,集群也可以用其他的节点提供服务
11.2 怎么搭建集群
以下演示是在同一台服务器不同端口,实际上开发时集群的各个实例处于不同服务器上
首先把持久化数据删掉:rdb,aof文件都删掉
11.2.1 制作六个实例:
6379对6389,6380对6390,6381对6391
修改基本配置:
-
开启daemonize yes
-
pid文件名字
-
指定端口
-
Log文件名字
-
dump.rdb名字
-
appendonly 关掉或者换名字
新增集群配置:redis cluster
cluster-enabled yes #打开集群模式
cluster-config-file nodes-6379.conf #设定节点配置文件名
cluster-node-timeout 15000 #设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换。
最后配置文件如下:
include /myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
拷贝生成其他5个conf
进入vim,使用vim里的%s/6379/63xx
进行一键替换
启动服务:
11.2.2 将六个节点合成一个集群:
组合之前,请确保所有redis实例启动后,nodes-xxxx.conf
文件都生成正常。
需要进入之前的安装目录下的src目录,cd /opt/redis-6.2.6/src
,需要redis-trib.rb
环境,所以只能在当前目录下运行
该目录下有redis-trib.rb
,所以直接运行redis-cli --cluster create --cluster-replicas 1
redis-cli --cluster create --cluster-replicas 1 192.168.11.101:6379 192.168.11.101:6380 192.168.11.101:6381 192.168.11.101:6389 192.168.11.101:6390 192.168.11.101:6391
- 此处ip地址不要用localhost,127.0.0.1,要用真实的IP地址
- –replicas 1 表示采用最简单的方法配置集群,一主一从,上面有三组
11.2.3 如何用集群的方式登录主机:
设立集群方式后就不能用往常的方法登录主机了
需要使用redis-cli -c -h 主机地址 -p 端口号
方式登录,此处-c
代表用集群方式连接
通过cluster nodes
查看集群信息
redis cluster如何分配这六个节点?
一个集群至少要有三个主节点。
选项 -