文章目录
1、集群简介
集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果
- 分散单台服务器的访问压力,实现负载均衡
- 分散单台服务器的存储压力,实现可扩展性
- 降低单台服务器宕机带来的业务灾难
2、Redis集群结构设计
2.1 数据存储设计
集群中,Redis内存空间好几块,由key通过算法计算出应该保存的位置
集群中一个机器持有一定的槽,增节点时,把他们的槽分一部分给新的机器,去节点时,把它的槽再分给现存的节点机器上,由此方便扩展。
2.2 集群内部通讯设计
各个数据库相互通信,保存各个库中槽的编号数据
,简单说就是每个节点都有张表。访问数据时:
- 一次就命中找到了,直接返回
- 一次未命中,告知具体位置
3、cluster集群结构搭建
3.1 配置文件相关
Cluster节点的conf配置
- 将机器开启为集群中的节点
cluster-enabled yes|no- 配置文件名,该文件属于自动生成
cluster-config-file filename,如 nodes-6379.conf- 节点服务响应超时时间,用于判定该节点是否下线
cluster-node-timeout milliseconds- master连接的slave最小数量
cluster-migration-barrier 值
3.2 集群管理工具-redis-trib
redis-trib.rb是官方提供的Redis Cluster的管理工具,在src目录下,其运行环境的配置与具体用法跳这篇细细看:
=======================>传送门
【Redis学习笔记】redis-trib.rb命令详解
redis-trib.rb集群管理指令精简版:
---------------------------------------------------
- 创建集群
redis-trib.rb create host1:port1 … hostN:portN –replicas <arg>- 检查集群
redis-trib.rb check host:port- 查看集群信息
redis-trib.rb info host:port- 添加新节点
redis-trib.rb add-node new_host:new_port ……- 删除节点
redis-trib.rb del-node host:port node_id- 修复集群
redis-trib.rb fix host:port –timeout <arg>
---------------------------------------------------
总之:
redis-trib.rb help
除了redis-trib.rb外,成功连接redis客户端后,也可使用cluster指令:
- 查看集群节点信息
cluster nodes- 进入一个从节点 redis,切换其主节点
cluster replicate- 发现一个新节点,新增节点
cluster meet ip:port- 忽略一个没有solt的节点
cluster forget- 手动故障转移
cluster failover
3.3 集群数据的写入与获取
6379、6380、6381为模拟master,6382、6383、6384为slave
$ redis-cli
127.0.0.1:6379 >set name 666
(error)MOVED 5798 127.0.0.1:6380
**注意此处提示key的存储位置在6380上
$ redis-cli -c
127.0.0.1:6379 >set name 666
->Redirected to slot [5798] located at 127.0.0.1:6380
$ redis-cli -c -p 6382
127.0.0.1:6382 >get name
->Redirected to slot [5798] located at 127.0.0.1:6380
"666"
注意-c参数的使用!
3.4 节点故障模拟
模拟主节点6379挂掉,并cluster nodes查看集群信息:
查看slave的控制台信息:
重新开启6379服务端,查看6382控制台日志:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/146158.html