redis cluster 部署

服务器说明

  1. 192.168.2.200:7000 ... 192.168.2.200:7005

创建集群目录

  1. mkdir cluster-test
  2. cd cluster-test
  3. mkdir 7000 7001 7002 7003 7004 7005
  4. 在每个目录下创建配置文件redis.config

redis.config内容

  1. #不同的目录端口不一样7000-》7005
  2. port 7000
  3. cluster-enabled yes
  4. cluster-config-file nodes.conf
  5. cluster-node-timeout 5000
  6. appendonly yes
  7. requirepass 123456
  8. # 使用守护进程模式
  9. daemonize yes
  10. # 非保护模式,可以外网访问
  11. protected-mode no
  12. cluster-replica-validity-factor 0
  13. cluster-require-full-coverage yes
  14. cluster-allow-reads-when-down yes

进入到每个7000->7005目录启动redis

  1. redis-server ./redis.conf

创建集群

  1. redis-cli --cluster create 192.168.2.200:7000 192.168.2.200:7001 \
  2. 192.168.2.200:7002 192.168.2.200:7003 192.168.2.200:7004 192.168.2.200:7005 \
  3. --cluster-replicas 1 -a 123456

集群命令

  1. #连接上一个节点
  2. redis-cli -c -p 7000 -a 123456
  3. #查看集群节点信息
  4. redis-cli -p 7000 -a 123456 cluster nodes
  5. #重新分配 分配要填写数量和分給节点的id
  6. redis-cli --cluster reshard 127.0.0.1:7000 -a 123456
  7. #重新分配可以直接执行,不需要手动输入,同上条命令一致
  8. redis-cli --cluster reshard <host>:<port> --cluster-from <node-id>
  9. --cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes
  10. #测试集群状态
  11. redis-cli --cluster check 127.0.0.1:7000 -a 123456
  12. #让主节点7002
  13. redis-cli -p 7002 -a 123456 debug segfault
  14. #添加一个新节点
  15. redis-cli -a 123456 --cluster add-node 127.0.0.1:7006 127.0.0.1:7000
  16. #添加一个slave
  17. redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave
  18. #添加一个指定主节点的slave
  19. redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave --cluster-master-id `<node-id>`
  20. #删除一个节点
  21. redis-cli --cluster del-node 127.0.0.1:7000 `<node-id>`
  22. redis-cli -a 123456 --cluster del-node 127.0.0.1:7000 c5509e0f1b161c126eed61a9718aa9200a6e5018
  1. cluster-enabled<yes/no>:如果是,则在特定的Redis实例中启用Redis群集支持。否则,实例将照常作为独立实例启动。
  2. cluster-config-file<filename>:请注意,尽管有此选项的名称,但这不是一个用户可编辑的配置文件,而是每次发生更改时,Redis群集节点都会自动保存群集配置(基本上是状态)的文件,以便在启动时重新读取。该文件列出了集群中的其他节点、它们的状态、持久变量等。通常,由于接收到一些消息,该文件会被重写并刷新到磁盘上。
  3. cluster-node-timeout <milliseconds>:Redis群集节点不可用的最长时间,而不会被视为失败。如果主节点在指定的时间内无法访问,则其副本将对其进行故障切换。此参数控制Redis集群中的其他重要内容。值得注意的是,在指定时间内无法到达大多数主节点的每个节点都将停止接受查询。
  4. cluster-slave-validity-factor <factor>:如果设置为零,副本将始终认为自己有效,因此将始终尝试对主机进行故障切换,而不管主机和副本之间的链路保持断开的时间。如果该值为正值,则最大断开时间将计算为节点超时值乘以此选项提供的系数,如果节点是副本,则如果主链路断开的时间超过指定的时间,则不会尝试启动故障切换。例如,如果节点超时设置为5秒,有效性系数设置为10,则与主机断开连接超过50秒的复制副本将不会尝试对其主机进行故障切换。请注意,如果没有能够进行故障切换的副本,则任何不同于零的值都可能导致Redis群集在主机故障后不可用。在这种情况下,只有当原始主机重新加入群集时,群集才会恢复可用。
  5. cluster-migration-barrier : 主机将保持连接的副本的最小数量,以便另一个副本迁移到不再被任何副本覆盖的主机。
  6. cluster-require-full-coverage <yes/no> : 如果默认设置为yes,则如果某有空闲的哈希槽未分配,集群将停止接受写入。如果该选项设置为no,集群仍将为查询提供服务
  7. cluster-allow-reads-when-down <yes/no>: 默认是 no,表示当集群因主节点数量达不到最小值或者哈希槽没有完全分配而被标记为失效时,节点将停止所有客户端请求。 设置成 yes,则允许集群失效的情况下依然可从节点中读取数据,保证了高可用。

redis cluster文档

redis cluster 部署的更多相关文章

  1. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

  2. Redis Cluster部署、管理和测试

    背景: Redis 3.0之后支持了Cluster,大大增强了Redis水平扩展的能力.Redis Cluster是Redis官方的集群实现方案,在此之前已经有第三方Redis集群解决方案,如Twen ...

  3. 基于redis5的redis cluster部署

    一.环境规划 #准备六台主机,地址如下 10.0.0.8 ---> master1 10.0.0.18 ---> master2 10.0.0.28 ---> master3 10. ...

  4. redis cluster 部署过程

    一, 特点 高性能: 1.在多分片节点中,将16384个槽位,均匀分布到多个分片节点中 2.存数据时,将key做crc16(key),然后和16384进行取模,得出槽位值(0-16383之间) 3.根 ...

  5. 【docker】【redis】2.docker上设置redis集群---Redis Cluster部署【集群服务】【解决在docker中redis启动后,状态为Restarting,日志报错:Configured to not listen anywhere, exiting.问题】【Waiting for the cluster to join...问题】

    参考地址:https://www.cnblogs.com/zhoujinyi/p/6477133.html https://www.cnblogs.com/cxbhakim/p/9151720.htm ...

  6. 在 K8S 中快速部署 Redis Cluster & Redisinsight

    Redis Cluster 部署 使用 Bitnami helm chart 在 K8S redis 命名空间中一键部署 Redis cluster . helm repo add bitnami h ...

  7. Redis Cluster 原理相关说明

    背景 之前写的 Redis Cluster部署.管理和测试 和 Redis 5.0 redis-cli --cluster help说明 已经比较详细的介绍了如何安装和维护Cluster.但关于Clu ...

  8. 如何用docker部署redis cluster

    前言 由于本人是个docker控,不喜欢安装各种环境,而且安装redis-trib也有点繁琐,索性用docker来做redis cluster. 本文用的是伪集群,真正的集群放到不同的机器即可.端口是 ...

  9. Redis Cluster的搭建与部署,实现redis的分布式方案

    前言 上篇Redis Sentinel安装与部署,实现redis的高可用实现了redis的高可用,针对的主要是master宕机的情况,我们发现所有节点的数据都是一样的,那么一旦数据量过大,redi也会 ...

  10. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

随机推荐

  1. flutter学习第一天笔记-----学习资源总结

  2. Map集合概述-Map常用子类

    Map集合概述 现实生活中,我们常会看到这样的一种集合︰IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种--对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  3. petite-vue和Vue的比较

    petite-vue不止是变得更小,它还是渐进式增强的最佳实践. Vue不构建或构建都能使用.当通过构建使用时(例如使用单文件组件),Vue预编译所有的模板,所以运行时没有再处理模板.多亏了树摇(th ...

  4. QuartzNet在winform中使用(目前版本3.6)

    界面图"没有什么技术含量~   不过还是有部分人不太了解的 接下来一一解析下,勿q 使用步骤: 1.初始化帮助类 QuarztHelper x = new QuarztHelper(); 2 ...

  5. axios设置全局headers

    需求:每次请求的时候都设置token为headers非常不方便 axios提供配置全局headers 这里我主要使用的是加 一个token验证 Global axios defaults axios. ...

  6. centos7 在线或离线安装python3

    1.前言 本文会使用到yum和wget,如果两者都不能用,参考安装教程 https://www.cnblogs.com/dennisdong/p/17037248.html 2.查看是否安装wget和 ...

  7. 华为云发布分布式编译构建系统CodeArts Build

    摘要:2月14日,华为云发布分布式编译构建系统CodeArts Build,旨在支撑企业实现高效的软件开发,缩短产品上市周期,帮助企业的软件产品快速形成关键竞争力. 本文分享自华为云社区<唯快不 ...

  8. 【OpenWrt】N1刷机过程及旁路由设置(通用)

    最近买了个N1盒子,从源系统刷到OpenWrt,总结一下整体过程,大部分都来源于网络教程和自己实践,如有错误欢迎指出! N1盒子刷机 固件准备 最著名的应该是F大的吧,原贴地址:[2023-2-14] ...

  9. 【TS】基础类型

    在ts中定义基础类型, 语法 : let 变量名 : 数据类型 = 值 // 布尔类型 ----boolean let flag : boolean = true flag = false 在赋值的时 ...

  10. C语言知识补充 --来自菜鸟教程的指针复习

    1.system 打开其他应用 1.指针演练  C 指针. 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址. #in ...