Redis-cluster集群搭建
1.1 Redis-cluster介绍
当高并发写请求较大时,哨兵模式并不能缓解写压力,Redis-cluster分片策略就是解决这个问题的。
集群将整个数据库分为16384个槽位slot,所有key-value数据都存储在这些slot中的某一个上,一个slot槽位可以存放多个数据。
集群中的每个主节点都可以处理0个至16383个槽,当16384个槽都有某个节点在负责处理时,集群进入上线状态,并开始处理客户端发送的数据命令请求。
1.2 Redis-cluster集群概念
(1)由多个Redis服务器组成的分布式网络服务集群;
(2)集群之中有多个Master主节点,每一个主节点都可读可写;
(3)节点之间会互相通信,两两相连;
(4)Redis集群无中心节点。
1.3 Redis-cluster 故障转移
1.3 集群redirect转向
由于Redis集群无中心节点,请求会随机发给任意主节点;
主节点只会处理自己负责槽位的命令请求,其它槽位的命令请求,该主节点会返回客户端一个转向错误;
客户端根据错误中包含的地址和端口重新向正确的负责的主节点发起命令请求。
2.1 集群搭建(适用redis 版本5.0以上)
Redis集群最少需要6个节点,可以分布在一台或者多台主机上.
我的节点规划如下图:
1.首先去官网下载redis-5.0.8.tar.gz 解压并make(已经安装好的这步省略)
2.修改redis.conf 文件 在刚刚解压完的目录中可以找到
因为6个节点我们需要准备6份配置文件,下面已7001主节点的为例:
注意:6份配置文件 只有(3)port 和 (5)dir 改成与之对应的即可
1.bind 0.0.0.0
2.protected-mode no #关闭保护模式
3.port 7001 # 端口号 7002配置改成与之对应的7002
4.daemonize yes # 启用守护模式
5.dir /home/app/redis-cluster/7001 # 服务启动后会生成dump.rdb nodes.conf 等文件目录
6.masterauth 123456 # 认证密码也都一样
7.requirepass 123456 # 建议集群密码都一样
8.cluster-node-timeout 5000 # 集群超时时间
9.cluster-enabled yes # 开启集群
3.创建文件夹 redis-cluster (服务器中任意位子)在文件夹下创建 7001至7006 6个文件夹,并放入对应配置文件
4.分别启动6个节点
5.查看状态
6.redis5.0以上的版本可以直接使用 ./redis-cli —cluster create 来启动集群,不用老版本的./redis-trib.rb create
# 启动redis 集群
./redis-cli --cluster create 106.13.11.132:7001 106.13.11.132:7002 106.13.11.132:7003 106.13.11.132:7004 106.13.11.132:7005 106.13.11.132:7006 --cluster-replicas 1 -a 123456
解释下参数:
–cluster-replicas 1 一主一从,如果一主二从 设置为2
-a 123456 redis的密码
如上顺序为7001至7006 redis集群机制会默认头三个7001 7002 7003 为主 7004 7005 7006 为从
7.查看集群信息
还没有评论,来说两句吧...