Redis集群的使用
来源:互联网 发布:必胜时时彩软件 编辑:程序博客网 时间:2024/05/29 13:22
1、集群架构特点:
(1)所有的 redis 节点彼此互联(PING-PONG 机制),内部使用二进制协议优化传输速度和带宽;
(2)节点的 fail 是通过集群中超过半数的节点检测失效时才生效;
(3)客户端与 redis 节点直连,不需要中间 proxy 层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可;
(4)redis-cluster 把所有的物理节点映射到[0-16383]个 slot(哈希槽)上,cluster 负责维护node<->slot<->value 。
2、集群选举容错:
(1)节点失效选举过程是集群中所有 master 参与,如果半数以上 master 节点与当前被检测 master 节点通信检测超时(cluster-node-timeout),就认为当前 master 节点挂掉;
(2)什么时候整个集群不可用(cluster_state:fail)?
A:如果集群任意 master 挂掉,且当前 master 没有 slave。集群进入 fail 状态,也可以理解成集群的slot 映射[0-16383]不完整时进入 fail 状态。 ps : redis-3.0.0.rc1 加入
cluster-require-full-coverage 参数,默认关闭,打开集群兼容部分失败;
B:如果集群超过半数以上 master 挂掉,无论是否有 slave 集群进入 fail 状态。
3、 客户端集群命令
集群
cluster info :打印集群的信息
cluster nodes :列出集群当前已知的所有节点(node),以及这些节点的相关信息。
节点
cluster meet <ip> <port>:将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
cluster forget <node_id>:从集群中移除 node_id 指定的节点。
cluster replicate <node_id>:将当前节点设置为 node_id 指定的节点的从节点。
cluster saveconfig :将节点的配置文件保存到硬盘里面。
槽 (slot)
cluster addslots <slot> [slot ...]:将一个或多个槽(slot)指派(assign)给当前节点。
cluster delslots <slot> [slot ...]:移除一个或多个槽对当前节点的指派。
cluster flushslots :移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
cluster setslot <slot> node <node_id> :将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
cluster setslot <slot> migrating <node_id>:将本节点的槽 slot 迁移到 node_id 指定的节点中。
cluster setslot <slot> importing <node_id> :从 node_id 指定的节点中导入槽 slot 到本节点。
cluster setslot <slot> stable:取消对槽 slot 的导入(import)或者迁移(migrate)。
键
cluster keyslot <key>:计算键 key 应该被放置在哪个槽上。
cluster countkeysinslot <slot>:返回槽 slot 目前包含的键值对数量。
cluster getkeysinslot <slot> <count>:返回 count 个 slot 槽中的键。
4、重建集群,步骤:
(1)关闭集群的各节点;
(2)删除各节点数据目录下的 nodes.conf、appendonly.aof、dump.rdb;
rm -rf appendonly.aof | rm -rf dump.rdb | rm -rf nodes.conf
(3)重新启用所有的节点
./install/bin/redis-server ./redis-7111/redis.conf
(4)执行集群创建命令(只需要在其中一个节点上执行一次则可)
./redis-trib create --replicas 1 10.10.36.126:7111 10.10.36.126:7112 10.10.36.126:7113 10.10.36.126:7114 10.10.36.126:7115 10.10.36.126:7116
5、查看当前集群各节点的状态
./redis-cli -h 10.10.36.126 -p 7111
cluster nodes
- Redis集群的使用
- Redis集群 Java客户端Jedis的使用
- Redis集群的配置及使用
- Twemproxy Redis 集群的研究和使用
- Redis集群进阶-使用集群
- 走进Redis:Redis的安装、使用以及集群的搭建
- Redis及Redis集群的搭建和使用
- SpringMVC使用Redis集群
- 使用redis部署集群
- Redis集群搭建使用
- redis 集群使用
- Redis集群的配置
- 理想的redis集群
- 理想化的Redis 集群
- 理想化的 Redis 集群
- 理想的redis集群
- redis集群的配置
- 理想化的 Redis 集群
- 《喵神-王巍博客》读书笔记,开发篇(5)
- 架构师知识体系(4)--互联网架构师必备技能(比你牛B的人比你还努力,你有什么资格不去奋斗)
- Datastructures for external memory
- Objective-c常用的函数,常数变量
- LogUtils
- Redis集群的使用
- cesium自定义气泡窗口infoWindow
- 《喵神-王巍博客》读书笔记,开发篇(6)
- 欢迎使用CSDN-markdown编辑器
- 架构师知识体系(3)--系统架构管理实践
- listview到底出现的阴影
- ssvep采集脑电信号的FFT分析
- python里遇到字典里key值为None的情况,取不出来。
- iOS 获取通讯录的4种方式详解