redis cluster 实践总结

2023-11-04

 
最近项目接触到了redis cluster,现在趁着使用做一下总结,记录一下遇到过的问题,简单的概述一下常用到的命令和功能。
本篇文章主要是以运维的角度去讲述如何去更好的规划redis cluster和跳坑。
redis cluster 官方文档:  https://redis.io/topics/cluster-tutorial
 
一、redis cluster 是什么
    redis cluster是官方redis 3.0版本之后推出的集群方案,之前类似的方案还有豌豆荚的codis集群方案、twemproxy方案,
不过twemproxy有个非常大的弊端就是不能在线扩容节点,这就比较尴尬了。redis cluster发布之后,截至目前为止,redis
cluster已经达到了成熟的程度,很多企业已经在生产系统使用,替换原有的twemproxy的分片方法。
 
二、redis cluster 的优点
 
  1. 支持数据分片功能,可以将数据分配到不同的实例上。
  2.  服务的高可用性、故障自动转移,最大程度避免单点故障
  3. 在线水平扩展能力,可以在线添加节点,转移数据等
  4. 无中心架构,各个节点度等。
  5. 降低原有的数据分片方案的复杂度,节省硬件资源
  6. 系统瓶颈更少,客户端直连方式。
   以上这些优点足以是我们选用redis cluster了。
 
三、redis cluster 应用最佳实践(跳坑)
 
  •   关于redis cluster实例的规划
       为什么要用redis cluster呢,对于运维来讲就是实现服务的高可用,避免单点故障。笔者遇到的最坑的就是前人创建的集群的时候没有添加副本数,
是9台服务器上每台启动24个实例,然后用这216个实例创建的一个cluster。直到上次其中的一台服务器内存故障,导致服务器down机,接着集群的部分
数据不可用,客户服务受到了严重的影响。 创建集群的时候建议必须增加一个副本数,不然集群只是分片的作用,达不到高可用的要求。
      redis是使用内存的数据库,规划的时候可按照服务器的内存大小来规划,我们研发说单个实例建议最大设置为20G,是官方文档中看到的,但是我还没找到。 集群的最多节点建议是1000个
      笔者目前维护的最大的集群为: 30台512G内存服务器,每台服务器上启动24个实例,共720个实例创建的一个cluster集群,副本数为1,相当于是360个
主和360个从节点。下图为30台机器的内存已使用的监控和整体的汇总展示。

 

 
  • 服务器数据的选择
   在服务器数据的选择上,建议采用偶数数据的机器,原因如下:
假如选用redis cluster官方教程里面的方法,拿三台主机A、B、C,每台机器上启动两个实例,那么他们的主从关系则为:
A <----B1
A1 ---->B
C <----C1
没错,你会发现,C服务器自己是自己的从,那么问题来了,加入C服务器故障,那么你的数据还是丢失的,所以说你的架构上是存在问题,不是高可用,依然存在单点,此时假如你再增加一台服务器D,那么C和D则会交叉的进行主从关系。
当然,上面这个主从关系是使用redis创建集群工具时候默认的bug,如果你一定要三台,每台上启动两个这样呢,你也可以这样做:
先使用A\B\C创建集群,全部是主节点,然后手动添加从节点,这样交叉添加也可以做到高可用。但是当你实例很多的时候你就力不从心了,所以建议采用偶数数目的服务器。
 
  • 监听地址需要注意的地方
          在配置文件中bind地址的时候千万不要用127.0.0.1,因为是要和其他服务器进行通信的,要采用真是的内网ip进行监听,不然你的集群是创建不成功的。
 
  •  不在支持多数据库
           根据官方文档的描述,redis cluster 是不支持select db的,redis单实例的时候是支持多数据库的。
  •  参数优化
          建议把cluster-require-full-coverage参数设置为no,即使单个slot异常,也不会出现大量的请求异常。
          把cluster-node-timeout参数设置一个较小的值,比如6000(6秒)。这个参数建议不要设置太小或者太大,30s-60s即可。
 
 
以上便是在维护redis cluster的遇到的一些坑,分享给大家,希望大家提前避免。
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/topicjie/p/7258579.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis cluster 实践总结 的相关文章

  • Linux中如何查看开启了哪些端口?

    在Linux中 端口是设备与外界通讯交流的出口 常用于指TCP IP协议中的端口 其按照端口号可以分为三类 分别是 公认端口 注册端口 动态端口 那么Linux中如何查看开启了哪些端口 以下是常用命令介绍 1 使用netstat命令 net
  • 软件开发和网络安全哪个更好找工作?

    为什么今年应届毕业生找工作这么难 有时间去看看张雪峰今年为什么这么火就明白了 这么多年人才供给和需求错配的问题 在经济下行的今年 集中爆发 供给端 大学生越来越多 需求端 低端工作大家不愿去 高端岗位又太少 很多基础行业 比如机械 土木 所
  • 拼多多详情API开启运营比价新纪元

    随着互联网的快速发展 电商行业正在迅速崛起 拼多多作为一家新兴的电商平台 凭借其独特的营销策略和创新的商业模式 成为了电商行业的一匹黑马 在拼多多的成功背后 其详情API接口营销起到了至关重要的作用 本文将详细介绍拼多多详情API接口营销的
  • 自定义编写zabbix_agent脚本

    vi usr lib systemd system zabbix agent servicce Unit Description Zabbix Agent After syslog target After network target S
  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 【Mysql】InnoDB 引擎中的页目录

    一 页目录和槽 现在知道记录在页中按照主键大小顺序串成了单链表 那么我使用主键查询的时候 最顺其自然的办法肯定是从第一条记录 也就是 Infrimum 记录开始 一直向后找 只要存在总会找到 这种在数据量少的时候还好说 一旦数据多了 遍历耗
  • 【计算机毕业设计】网上拍卖系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本网上拍卖系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人员
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • 图解python | 字符串及操作

    1 Python元组 Python的元组与列表类似 不同之处在于元组的元素不能修改 元组使用小括号 列表使用方括号 元组创建很简单 只需要在括号中添加元素 并使用逗号隔开即可 tup1 ByteDance ShowMeAI 1997 202
  • python超详细基础文件操作【建议收藏】

    文章目录 前言 发现宝藏 1 文件操作 1 1 文件打开与关闭 1 1 1 打开文件 1 1 2 关闭文件 1 2 访问模式及说明 2 文件读写 2 1 写数据 write 2 2 读数据 read 2 3 读数据 readlines 2
  • 【计算机毕业设计】二手图书交易系统

    随着世界经济信息化 全球化的到来和互联网的飞速发展 推动了各行业的改革 若想达到安全 快捷的目的 就需要拥有信息化的组织和管理模式 建立一套合理 动态的 交互友好的 高效的二手图书交易系统 当前的信息管理存在工作效率低 工作繁杂等问题 基于
  • 【计算机毕业设计】二手家电管理平台

    时代在飞速进步 每个行业都在努力发展现在先进技术 通过这些先进的技术来提高自己的水平和优势 二手家电管理平台当然不能排除在外 二手家电管理平台是在实际应用和软件工程的开发原理之上 运用java语言以及前台VUE框架 后台SpringBoot
  • Kubernetes (十一) 存储——Secret配置管理

    一 简介 从文件创建 echo n admin gt username txt echo n westos gt password txt kubectl create secret generic db user pass from fi
  • 30天精通Nodejs--第二十天:express-操作mysql

    目录 前言 安装依赖并配置MySQL连接 安装mysql2库 配置连接信息 在Express应用中使用MySQL 结合Express路由实现CRUD操作 整合到主应用 结语 前言 在Node js中使用Expre
  • MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)

    目录 一 MongoDB 1 1 简介 a MongoDB 是什么 为什么要使用 MongoDB b 应用场景 c MongoDB 这么强大 是不是可以直接代替 MySQL d MongoDB 中的一些概念 e Docker 下载 1 2
  • 毕业设计:基于python人脸识别系统 LBPH算法 sqlite数据库 (源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 每日变更的最佳实践

    在优维公司内部 我们采用发布单的方式进行每天的应用变更管理 这里给各位介绍优维的最佳实践 变更是需要多角色合作的 而且他是整体研发流程的一部分 在优维内部 我们坚持每日变更 打通开发环节到最终发布上线的全过程 在保证质量的前提下 尽可能提升
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据
  • 【安全-SSH】SSH安全设置

    今天发现自己的公有云服务器被攻击了 在这里插入图片描述 https img blog csdnimg cn direct cafdca04646f4b8b838400ec79ac282f png 然后查看了登录日志 如上图 ls sh va

随机推荐

  • python中多线程编程中eoferror_面试官:请你讲讲Python多线程多进程编程

    Python多线程多进程文章目录并行和并发的概念 线程和进程的概念 来点八股文 PythonGIL锁相关以及历史 多线程编程详解 多进程编程详解 重点 一 什么是并行和并发 首先我们来先说一下一个简单的共同点 并行和并发都是完成多任务更加有
  • python QMessageBox设置标签和按钮居中、中文按钮

    from PyQt5 QtCore import Qt from PyQt5 QtWidgets import QApplication QMessageBox QLabel QDialogButtonBox from PyQt5 QtGu
  • IDEA报错 Cannot resolve method ‘xxx‘ in ‘xxx‘

    今天在用Logback做一个小项目的时候 出现了这个bug 一下子给我报了50个错误 如下图所示 后面经过10分钟左右的排查 在网上搜寻解决方式 网上的解决方案差不多有以下三种 1 重装Logback 2 清除IDE缓存 3 重新导包导库
  • 写入位置时发生访问冲突

    写入位置时发生访问冲突是因为待写入的内存空间不能被写入 可能的情况 给野指针赋值 通常在调试的时候 如果一个指针指向的地址为0x00000000那么表示这个指针不指向任何地址 参考文章 1 2
  • Lesson40 FIFO的配置与使用

    摄像头的FIFO配置使用 一 FIFO的基本工作原理讲解 二 Vivado中FIFO IP的添加和基本配置 三 IP文档资料的获取方法 四 编写测试脚本 1 复制 FIFO 的例化模板 2 新建存放FIFO仿真文件的文件夹 3 全部的仿真代
  • 用opencv简单的检测三角形、正方形、圆以及它们的颜色

    源码下载地址点击打开链接 原始图片 检测结果 检测后图片 下面为完整代码 include
  • 【雕爷学编程】Arduino动手做(65)---红外寻迹传感器

    37款传感器与执行器的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止这37种的 鉴于本人手头积累了一些传感器和执行器模块 依照实践出真知 一定要动手做 的理念 以学习和交流为目的 这里准备逐一动手尝试系列实验 不管
  • C++ 类模板

    目录 1 定义 2 验证类模板生成的类定义 3 非类型参数 4 模板别名 5 模板类 6 多个参数类型 7 类型参数默认值 8 模板类作为模板函数的入参 9 模板具体化 10 成员模板 11 将模板类用作类型参数 12 模板类中的友元 1
  • GPT模型介绍并且使用pytorch实现一个小型GPT中文闲聊系统

    文章目录 GPT模型介绍 无监督训练方式 模型结构 微调 下游任务输入形式 GPT 2 GPT 3 pytorch实现一个小型GPT中文闲聊系统 GPT模型介绍 GPT与BERT一样也是一种预训练模型 与BERT不同的是 GPT使用的是Tr
  • 【转载】LaTeX 各种命令和符号

    LaTeX 各种命令 符号 前言 前言 在别人博客看到特别好的介绍LaTeX 各种命令 符号 而自己又经常需要查阅 所以转载过来到自己的博客以便自己后续学习 特别好的整理 再次感谢博主 同时也是自己第一篇转载的文章hhh 函数 符号及特殊字
  • C#使用操作系统默认程序打开pdf,支持.NET Core跨平台,无视平台差异

    C 使用操作系统默认程序打开pdf 支持 NET Core跨平台 无视平台差异 System Diagnostics Process Start explorer D pdf 638086539413135758 pdf 参考文章 1 ht
  • uni、js——点击与禁用(不可点击)、动态样式class

    案例 没约满的时间可以点击进行选择 约满的就不能选择了 选择完之后变色变字 核心思想就是创建一个第三方变量存起来 点击谁就存到第三方 在根据这个进行判断 代码
  • 面试中 项目遇见的难点答案_2019 百度、头条、小米、360、网易、拼多多等公司 Android 社招面试心得...

    每到 金三银四 的季节 总人很多人去寻找名叫 面经 一样的东西 其实就是一个个具体的题目 然后临阵磨枪 去 背 答案 如果一直是这样的话 我相信你的能力不会有任何提高 即使工作三年五年也达不到高级工程师的水平 事实证明这类 程序员 占大多数
  • 测试技术

    单元测试的策略 逻辑覆盖 循环覆盖 同行评审 桌前检查 代码走查 代码评审 景泰数据流分析 白盒测试方法 六种覆盖方法中 覆盖准则由弱到强依次是语句覆盖 判定覆盖 分支覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖 路径覆盖 其中 语句覆盖是
  • mysqld: File ‘./binlog.index‘ not found (OS errno 13 - Permission denied)

    背景 CentOS Stream 9安装Mysql8 0社区版时 为了修改端口 增加了my cnf文件 发现重启后报错 binlog index找不到 解决方法 1 关掉SELINUX root 192 mysql vi etc selin
  • JAVA异常实验:车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品

    车站检查危险品的设备 如果发现危险品会发出警告 编程模拟设备发现危险品 编写能够满足如下条件的程序 编写一个Exception的子类DangerException 该子类可以创建异常对象 该异常对象调用showMessage 方法输出 属于
  • Spring MVC 源码分析之 加载及查找 Controller

    目录 一 前言 二 查找Handler 2 1 回顾 doDispatch 2 2 查看 getHandler方法 2 3 handlerMappings的前世今生 三 补充说明 1 通过 方式 2 SpringBoot方式 四 总结 一
  • python中request、lxml、xpath使用

    request lxml xpath request 环境搭建 pip install requests 使用方法 下载完包之后 在项目中引入包 import requests 发送请求 get请求 import requests 通过re
  • 再谈type ahead 问题

    问题 给定一个词典 包括一些词和其出现的频率 实现type ahead功能 要求用户每键入一个字符 下拉框显示以当前输入为前缀的前10个最热门的词 解法1 用不带data的Trie data仅仅是词频 实时查询法 需要实时的去build h
  • redis cluster 实践总结

    最近项目接触到了redis cluster 现在趁着使用做一下总结 记录一下遇到过的问题 简单的概述一下常用到的命令和功能 本篇文章主要是以运维的角度去讲述如何去更好的规划redis cluster和跳坑 redis cluster 官方文