【Redis学习笔记】第十三章 Redis集群

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 【Redis学习笔记】第十三章 Redis集群,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文


在这里插入图片描述



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控制台日志:

在这里插入图片描述
cluster nodes查看集群信息:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/146158.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!