Redis 集群
时间:2021-10-07
本文章向大家介绍Redis 集群,主要包括Redis 集群使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
10.0.0.101,10.0.0.102,10.0.0.103 - 集群master 10.0.0.104,10.0.0.105,10.0.0.106 - 集群slave # 修改集群配置 sed -i.bak -e '/masterauth/a masterauth 123456' -e '/# cluster-enabled yes/a cluster-enabled yes' -e '/# cluster-config-file nodes-6379.conf/a cluster-config-file nodes-6379.conf' -e '/cluster-requirefull-coverage yes/c cluster-require-full-coverage no' /apps/redis/etc/redis.conf # 配置集群 redis-cli -a 123456 --cluster create 10.0.0.101:6379 10.0.0.102:6379 10.0.0.103:6379 10.0.0.104:6379 10.0.0.105:6379 10.0.0.106:6379 --cluster-replicas 1 故障自愈之前,105是101的从 [20:33:22 root@localhost ~]#redis-cli -a 123456 cluster nodes Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379@16379 master - 0 1633610227401 2 connected 5461-10922 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379@16379 slave 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 0 1633610227000 1 connected 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379@16379 slave 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 0 1633610226371 2 connected fe7ea30427e3a02b838958a27f415dba7dd72da3 10.0.0.104:6379@16379 slave 98c0b7a483cddb733f40df7fdb02cee30766b52c 0 1633610227000 3 connected 98c0b7a483cddb733f40df7fdb02cee30766b52c 10.0.0.103:6379@16379 myself,master - 0 1633610226000 3 connected 10923-16383 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379@16379 master - 0 1633610228408 1 connected 0-5460 故障自愈以后,105变主,101变成105的从 [20:57:48 root@localhost ~]#redis-cli -a 123456 cluster nodes Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379@16379 master - 0 1633611468000 7 connected 0-5460 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379@16379 master - 0 1633611466000 2 connected 5461-10922 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379@16379 myself,slave 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 0 1633611467000 2 connected 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379@16379 slave 9f222d9116edd65a1850aac65c1cdceb15159bfa 0 1633611468521 7 connected 98c0b7a483cddb733f40df7fdb02cee30766b52c 10.0.0.103:6379@16379 master - 0 1633611469533 3 connected 10923-16383 fe7ea30427e3a02b838958a27f415dba7dd72da3 10.0.0.104:6379@16379 slave 98c0b7a483cddb733f40df7fdb02cee30766b52c 0 1633611467511 3 connected [20:37:48 root@localhost ~]#redis-cli -a 123456 --cluster check 10.0.0.103:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.0.0.103:6379 (98c0b7a4...) -> 0 keys | 5461 slots | 1 slaves. 10.0.0.102:6379 (2be4bfee...) -> 1 keys | 5462 slots | 1 slaves. 10.0.0.105:6379 (9f222d91...) -> 0 keys | 5461 slots | 1 slaves. [OK] 1 keys in 3 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 10.0.0.103:6379) M: 98c0b7a483cddb733f40df7fdb02cee30766b52c 10.0.0.103:6379 slots:[10923-16383] (5461 slots) master 1 additional replica(s) M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[5461-10922] (5462 slots) master 1 additional replica(s) M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b S: fe7ea30427e3a02b838958a27f415dba7dd72da3 10.0.0.104:6379 slots: (0 slots) slave replicates 98c0b7a483cddb733f40df7fdb02cee30766b52c S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa ### 缩容 # 把103的slot分配给其他主节点机器 [21:18:34 root@localhost ~]#redis-cli -a 123456 --cluster reshard 10.0.0.103:6379 # 分配所有的slot以后,删除当前集群的103节点 [21:18:34 root@localhost ~]#redis-cli -a 123456 --cluster del-node 10.0.0.102:6379 98c0b7a483cddb733f40df7fdb02cee30766b52c # 删除一行,它的slave变成其他主的从节点 [21:12:27 root@localhost ~]#redis-cli -a 123456 --cluster check 10.0.0.102:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.0.0.102:6379 (2be4bfee...) -> 1 keys | 7282 slots | 1 slaves. 10.0.0.105:6379 (9f222d91...) -> 0 keys | 9102 slots | 2 slaves. [OK] 1 keys in 2 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 10.0.0.102:6379) M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[5461-12742] (7282 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[0-5460],[12743-16383] (9102 slots) master 2 additional replica(s) S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa S: fe7ea30427e3a02b838958a27f415dba7dd72da3 10.0.0.104:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa # 删除从节点 [20:37:48 root@localhost ~]#redis-cli -a 123456 --cluster del-node 10.0.0.102:6379 fe7ea30427e3a02b838958a27f415dba7dd72da3 # 删除主节点和从节点的node.conf文件 [21:18:34 root@localhost ~]#rm -f /apps/redis/data/nodes-6379.conf # 到这里,所有缩容完成 [21:12:38 root@localhost ~]#redis-cli -a 123456 --cluster check 10.0.0.102:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.0.0.102:6379 (2be4bfee...) -> 1 keys | 7282 slots | 1 slaves. 10.0.0.105:6379 (9f222d91...) -> 0 keys | 9102 slots | 1 slaves. [OK] 1 keys in 2 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 10.0.0.102:6379) M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[5461-12742] (7282 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[0-5460],[12743-16383] (9102 slots) master 1 additional replica(s) S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa ## 扩容 [21:23:40 root@localhost ~]#redis-cli -a 123456 --cluster add-node 10.0.0.103:6379 10.0.0.102:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. >>> Adding node 10.0.0.103:6379 to cluster 10.0.0.102:6379 >>> Performing Cluster Check (using node 10.0.0.102:6379) M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[5461-12742] (7282 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[0-5460],[12743-16383] (9102 slots) master 1 additional replica(s) S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 10.0.0.103:6379 to make it join the cluster. [OK] New node added correctly. # 此时已经加入到集群,但是无slave和slots,仅仅是一个master [21:25:34 root@localhost ~]#redis-cli -a 123456 --cluster info 10.0.0.103:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.0.0.103:6379 (98c0b7a4...) -> 0 keys | 0 slots | 0 slaves. 10.0.0.102:6379 (2be4bfee...) -> 1 keys | 7282 slots | 1 slaves. 10.0.0.105:6379 (9f222d91...) -> 0 keys | 9102 slots | 1 slaves. # 分配slot [21:31:01 root@localhost ~]#redis-cli -a 123456 --cluster reshard 10.0.0.103:6379 [21:30:58 root@localhost ~]#redis-cli -a 123456 --cluster check 10.0.0.103:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.0.0.103:6379 (98c0b7a4...) -> 0 keys | 5462 slots | 0 slaves. 10.0.0.102:6379 (2be4bfee...) -> 1 keys | 5462 slots | 1 slaves. 10.0.0.105:6379 (9f222d91...) -> 0 keys | 5460 slots | 1 slaves. [OK] 1 keys in 3 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 10.0.0.103:6379) M: 98c0b7a483cddb733f40df7fdb02cee30766b52c 10.0.0.103:6379 slots:[0-3641],[5461-7280] (5462 slots) master M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[7281-12742] (5462 slots) master 1 additional replica(s) M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[3642-5460],[12743-16383] (5460 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. # 加入从节点 [21:31:42 root@localhost ~]#redis-cli -a 123456 --cluster add-node 10.0.0.104:6379 10.0.0.102:6379 --cluster-slave --cluster-master-id 98c0b7a483cddb733f40df7fdb02cee30766b52c Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. >>> Adding node 10.0.0.104:6379 to cluster 10.0.0.102:6379 >>> Performing Cluster Check (using node 10.0.0.102:6379) M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[7281-12742] (5462 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b M: 98c0b7a483cddb733f40df7fdb02cee30766b52c 10.0.0.103:6379 slots:[0-3641],[5461-7280] (5462 slots) master M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[3642-5460],[12743-16383] (5460 slots) master 1 additional replica(s) S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 10.0.0.104:6379 to make it join the cluster. Waiting for the cluster to join >>> Configure node as replica of 10.0.0.103:6379. [OK] New node added correctly. # 查看集群 [21:34:10 root@localhost ~]#redis-cli -a 123456 --cluster check 10.0.0.103:6379 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.0.0.103:6379 (98c0b7a4...) -> 0 keys | 5462 slots | 1 slaves. 10.0.0.102:6379 (2be4bfee...) -> 1 keys | 5462 slots | 1 slaves. 10.0.0.105:6379 (9f222d91...) -> 0 keys | 5460 slots | 1 slaves. [OK] 1 keys in 3 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 10.0.0.103:6379) M: 98c0b7a483cddb733f40df7fdb02cee30766b52c 10.0.0.103:6379 slots:[0-3641],[5461-7280] (5462 slots) master 1 additional replica(s) M: 2be4bfee4bbcff66ed4678b364e1acc0a0de689b 10.0.0.102:6379 slots:[7281-12742] (5462 slots) master 1 additional replica(s) M: 9f222d9116edd65a1850aac65c1cdceb15159bfa 10.0.0.105:6379 slots:[3642-5460],[12743-16383] (5460 slots) master 1 additional replica(s) S: 0ea52b759530416a9d3a05c9bf3e7445c298eda6 10.0.0.106:6379 slots: (0 slots) slave replicates 2be4bfee4bbcff66ed4678b364e1acc0a0de689b S: fe7ea30427e3a02b838958a27f415dba7dd72da3 10.0.0.104:6379 slots: (0 slots) slave replicates 98c0b7a483cddb733f40df7fdb02cee30766b52c S: 8216763e1d73c191f6ec1e7e4f6fae090a72abbc 10.0.0.101:6379 slots: (0 slots) slave replicates 9f222d9116edd65a1850aac65c1cdceb15159bfa [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [21:34:13 root@localhost ~]#redis-cli -a 123456 --no-auth-warning cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:10 cluster_my_epoch:10 cluster_stats_messages_ping_sent:2969 cluster_stats_messages_pong_sent:24699 cluster_stats_messages_meet_sent:2 cluster_stats_messages_auth-ack_sent:1 cluster_stats_messages_update_sent:9 cluster_stats_messages_sent:27680 cluster_stats_messages_ping_received:2851 cluster_stats_messages_pong_received:8432 cluster_stats_messages_fail_received:1 cluster_stats_messages_auth-req_received:1 cluster_stats_messages_received:11285
原文地址:https://www.cnblogs.com/noise/p/15377202.html
- SQL可以正常用,但cmd启动不了mysql,报错[ERROR] unknown variable ;basedir=....问题
- Percona-toolkit的安装和配置(r8笔记第86天)
- 分布式服务框架 Zookeeper
- python--类方法、对象方法、静态方法
- Go语言内存分配器的实现
- Go 语言 数据库操作之链接数据库实现
- 对于tnsping的连接超时的功能补充(r9笔记第3天)
- struts2拦截器源码分析
- Go语言学习(一):hello world
- JAVA基础知识点:内存、比较和Final
- python django 学习(一)数据库 目的根据已有BBS建立新的网站步骤
- SpringMVC中@RequestMapping的基本用法
- Java面试系列13
- 【Go 语言 时间相关操作 demo】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法