Redis应用-3.集群
3.集群
3.1 集群简介
现状问题
业务发展过程中遇到的峰值瓶颈
redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到10万/秒 内存单机容量达到256G,当前业务需求内存容量1T 使用集群的方式可以快速解决上述问题
集群架构
集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果
集群作用
分散单台服务器的访问压力,实现负载均衡 分散单台服务器的存储压力,实现可扩展性 降低单台服务器宕机带来的业务灾难
3.2 Redis集群结构设计
数据存储设计
1.通过算法设计,计算出key应该保存的位置 2.将所有的存储空间计划切割成16384份,每台主机保存一部分 3.每份代表的是一个存储空间,不是一个key的保存空间 4.将key按照计算出的结果放到对应的存储空间
5.增强可扩展性
当新添加redis存储空间,其他的redis会重新优化,每个存储空间都给新空间一些存储位置,每个存储数据空间的位置叫槽。 总的来说就是,每个机器都占有一部分槽位,当有新机器就把自己的槽位分一部分给新机器。如果移除机器,就把所占槽位分配给其他机器。
集群内部通讯设计
各个数据库相互通信,保存各个库中槽的编号数据 接收到key查看这个key对应的存储槽在哪里 一次命中,直接返回 一次未命中,告知具体位置
3.3 cluster集群结构搭建
搭建方式
原生安装(单条命令) 配置服务器(3主3从) 建立通信(Meet) 分槽(Slot) 搭建主从(master-slave) 工具安装(批处理)
Cluster配置
conf配置文件配置
添加节点
cluster-enabled yes|no
cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file <filename>
节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
cluster-node-timeout <milliseconds>
master连接的slave最小数量
cluster-migration-barrier <count>
Cluster节点操作命令
查看集群节点信息
cluster nodes
进入一个从节点 redis,切换其主节点
cluster replicate <master-id>
发现一个新节点,新增主节点
cluster meet ip:port
忽略一个没有solt的节点
cluster forget <id>
手动故障转移
cluster failover
redis-trib命令
添加节点
redis-trib.rb add-node
删除节点
redis-trib.rb del-node
重新分片
redis-trib.rb reshard
搭建集群指令
新版本redis这个搭建集群命令被弃用,使用redis-cli --cluster create ....代替
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/15312777.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步