redis cluster 部署

服务器说明

192.168.2.200:7000 ... 192.168.2.200:7005

创建集群目录

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

redis.config内容

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

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

redis-server ./redis.conf

创建集群

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

集群命令

#连接上一个节点
redis-cli -c -p 7000 -a 123456
#查看集群节点信息
redis-cli -p 7000 -a 123456 cluster nodes
#重新分配 分配要填写数量和分給节点的id
redis-cli --cluster reshard 127.0.0.1:7000 -a 123456
#重新分配可以直接执行,不需要手动输入,同上条命令一致
redis-cli --cluster reshard <host>:<port> --cluster-from <node-id>
--cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes #测试集群状态
redis-cli --cluster check 127.0.0.1:7000 -a 123456 #让主节点7002
redis-cli -p 7002 -a 123456 debug segfault #添加一个新节点
redis-cli -a 123456 --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 #添加一个slave
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave
#添加一个指定主节点的slave
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave --cluster-master-id `<node-id>` #删除一个节点
redis-cli --cluster del-node 127.0.0.1:7000 `<node-id>`
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文档

最新文章

  1. service的简单使用
  2. 如何用JS获取ASP.net中的textbox的值 js获不到text值
  3. Models
  4. Axis2联接WCF(比较完整的版本)
  5. Home | WebScraping.com
  6. Java进阶之内存管理与垃圾回收
  7. 自动化之路 python psutil模块 收集硬件信息
  8. js变量提升小记
  9. 【IIS】解决IIS无响应假死状态,asp突然无法访问重启后可以使用是什么原因
  10. 学习excel的使用技巧统计文本出现的次数
  11. (转)Docker磁盘垃圾清理
  12. 自适应阈值二值化之最大类间方差法(大津法,OTSU)
  13. Myloader参数说明
  14. webkit内核自定义隐藏滚动条
  15. Bootstrap 样式设计 栅格系统
  16. TCP状态知识总结(图解)
  17. Excel中功能清单转Project任务
  18. 凡事不求甚解,遇事必定抓瞎——PHP开发Apache服务器配置备忘录
  19. CodeChef CHEFSOC2 Chef and Big Soccer 水dp
  20. 关于usr/bin/ld: cannot find -lxxx问题总结(Qt编译错误cannot find -lGL)

热门文章

  1. 今日实际操作----Dart Mac开发与运行环境配置 配置.bash_profile
  2. .NET与大数据
  3. 【学习笔记】QT从入门到实战完整版(按钮和信号槽)(1)
  4. Monkey 命令
  5. Pytest插件pytest-order指定用例顺序
  6. Nginx07 keepalived
  7. C# winform 一个窗体需要调用自定义用户控件的控件名称
  8. JZOJ 5344. 【NOIP2017模拟9.3A组】摘果子
  9. JZOJ 2937. 【NOIP2012模拟8.9】监听还原
  10. map方法整理数据,接口返回值进行处理