当前位置: 首页 > news >正文

部署redis cluster

部署集群之前,需求停掉之前的redis进程和哨兵;
redis cluster虽然支持集群,会自动进行主从分布,但其实是不支持读写分离的。
1.redis cluster 重要配置
cluster-enabled
cluster-config-file <filename>
这是指定一个文件,供cluster模式下的redis实例将集群状态保存在那里,包括集群中其他机器的信息,比如节点的上线和下限,故障转移,不是我们去维护的,给它指定一个文件,让redis自己去维护的
cluster-node-timeout <milliseconds>
节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务

  1. 开始部署6个jedis实例
    鉴于之前已经部署过redis,这里只需要修改配置文件属性与名称即可
    mkdir -p /etc/redis-cluster redis cluster的自动配置文件夹
    mkdir -p /var/redis/7001,7002,7003... redis的数据文件 aof dump
    mkdir -p /var/log/redis redis的log文件夹
    复制/etc/redis/6379.conf并修改如下参数重命名为7001.conf
    port 7001
    cluster-enabled yes
    cluster-config-file /etc/redis-cluster/node-7001.conf
    cluster-node-timeout 15000
    daemonize yes #守护进程
    pidfile /var/run/redis_7001.pid
    dir /var/redis/7001
    logfile /var/log/redis/7001.log
    bind 192.168.1.107
    appendonly yes #允许aof
    这边注意:无需开启slaveof 因为cluster会自动分配主从节点,无需自动配置;因为是本地测试,authpass requirepass全部不启用
  2. 准备启动脚本
    /ect/init.d 下 复制redis_6379 重命名为 redis_7001 修改相应端口
    4.创建集群
    yum install -y ruby
    yum install -y rubygem
    gem install redis
    最后一步的时候报错了:redis需要 ruby version > 2.2的版本
    参考后在线升级了ruby的版本:https://www.cnblogs.com/carryping/p/7447823.html
    cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin
    redis-trib.rb create --replicas 1 192.168.1.107:7001 192.168.1.107:7002 192.168.1.108:7003 192.168.1.108:7004 192.168.1.105:7005 192.168.1.105:7006

    --replicas参数: 每个master有几个slave

    最后使用 redis-trib.rb check 192.168.1.107:7001 检查redis cluster部署情况,也可以查询redis log日志

    由于redis cluster不支持读写分离,在set get数据的时候会根据计算出来key的splot不同 会提示move to
    可以使用 readonly 在从节点上读取主节点数据;
    使用redis-cli -h host -p port -c 强制自动进行底层重定向

    redis cluster 其他参数和命令参考:
    http://blog.csdn.net/mysqldba23/article/details/67640478

转载于:https://blog.51cto.com/8237162/2058132

相关文章:

  • 你知道升级 tomcat 8.5.x后cookie有什么变化吗?
  • kaggle之数据分析从业者用户画像分析
  • 如何添加自定义脚本到开机自启动
  • Linux学习之路-Linux-循环 for、while【10】---20171223
  • 函数式 Java 到函数式 Kotlin 的转换
  • 23.2. 基础操作
  • Kubernetes系统架构简介[转]
  • Jenkins+Jmeter持续集成笔记(三:集成到Jenkins)
  • [译]使用 Siesta 处理 Swift 网络请求
  • 33.3. nanomsg
  • Salesforce收购数据库创业公司Attic Labs
  • 数组 类型 在 存储过程中 使用
  • 基于TableStore/MaxCompute的数据采集分析系统介绍
  • think php框架接入微信支付中需要注意的问题(php 小白适用)
  • 第一章
  • [译]前端离线指南(上)
  • Android Volley源码解析
  • Android 架构优化~MVP 架构改造
  • Android开源项目规范总结
  • ECMAScript6(0):ES6简明参考手册
  • ES6--对象的扩展
  • iOS编译提示和导航提示
  • MQ框架的比较
  • Python进阶细节
  • Python学习之路16-使用API
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 闭包,sync使用细节
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 记录一下第一次使用npm
  • 那些年我们用过的显示性能指标
  • 前端技术周刊 2019-01-14:客户端存储
  • 最近的计划
  • 阿里云ACE认证学习知识点梳理
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​Spring Boot 分片上传文件
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # 数论-逆元
  • #图像处理
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (done) 两个矩阵 “相似” 是什么意思?
  • (分布式缓存)Redis持久化
  • (分布式缓存)Redis分片集群
  • (分类)KNN算法- 参数调优
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (算法)Travel Information Center
  • (一)VirtualBox安装增强功能
  • (一)插入排序
  • (转)原始图像数据和PDF中的图像数据
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .apk文件,IIS不支持下载解决
  • .equals()到底是什么意思?
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)