redis 高阶(八)集群

一.集群简介

1.现状问题

2.集群架构

 集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果

3.集群作用

  • 分散单台服务器的访问压力,实现负载均衡
  • 分散单台服务器的存储压力,实现可扩展性
  • 降低单台服务器宕机带来的业务灾难

二.redis集群结构设计

1.数据存储设计

  •  通过算法设计,计算出key应该保存的位置
  •  将所有的存储空间计划切割成16384份,每台主机保存一部分每份代表的是一个存储空间,不是一个key的保存空间
  •  将key按照计算出的结果放到对应的存储空间
  •  增强可扩展性

2.集群内部通讯设计

  •  各个数据库相互通信,保存各个库中槽的编号数据
  •  一次命中,直接返回
  •  一次未命中,告知具体位置

三.Cluster集群结构搭建

1.搭建方式

1.1 原生安装(单条命令)

  • 配置服务器(3主3从)
  • 建立通信(Meet)
  • 分槽(Slot)
  • 搭建主从(master-slave)

1.2 工具安装(批处理)

2.Cluster配置

#添加节点
cluster-enabled yes|no
#cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file <filename>
#节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
cluster-node-timeout <milliseconds>
#master连接的slave最小数量
cluster-migration-barrier <count>

3.搭建

3.1 配置(3主3从)

  • master1  redis-6379.conf
  • master2  redis-6380.conf
  • master3  redis-6381.conf
  • slave1    redis-6382.conf 
  • slave2    redis-6383.conf
  • slave3    redis-6384.conf
daemonize no
port 6379
dir "/usr/local/redis-5.0.5/data"
bind 127.0.0.1
databases 16

dbfilename "dump-6379.rdb"
rdbcompression yes
rdbchecksum yes
stop-writes-on-bgsave-error yes
save 300 10

appendonly yes
appendfsync everysec
appendfilename "appendonly-6379.aof"

#cluster配置
#添加节点  yes|no
cluster-enabled yes
#cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file nodes-6379.conf
#节点服务响应超时时间(ms),用于判定该节点是否下线或切换为从节点
cluster-node-timeout 10000
#master连接的slave最小数量
#cluster-migration-barrier <count>

3.2 依次启动6台服务成为cluster节点

3.3 连接节点

执行命令

./redis-trib.rb  create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

问题一:缺少依赖

安装依赖

问题二:原本的命令./redis-trib.rb create --replicas废弃了,提示改用redis-cli

新命令(redis 5.0后改用 redis-cli --cluster create 启用集群 )

# --cluster-replicas 1 表示一个master挂载slave的个数,这里挂在一个,所以数值为1
./redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

3.4 cluster连接后master与slave的变化

master

slave

3.5 设置与获取数据

4.主从下线与主从切换

4.1 slave1下线

master1提示:

其它master提示:

4.2 slave1再上线

master1提示:

其它master提示:

4.3 master1下线

slave1提示:

4.4 master1再上线

slave1提示:

 

5.Cluster节点操作命令

查看集群节点信息

cluster nodes

进入一个从节点 redis,切换其主节点

cluster replicate <master-id>

发现一个新节点,新增主节点

cluster meet ip:port

忽略一个没有solt的节点

cluster forget <id>

手动故障转移

cluster failover

 

6.redis-trib命令

添加节点

redis-trib.rb add-node

删除节点

redis-trib.rb del-node

重新分片

redis-trib.rb reshard


 

申明:内容来自网络,仅供学习使用
参考:http://yun.itheima.com/course/611.html?stt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值