目标:测试master down , 是否会有slave节点 替换master
步骤:
对于原本的环境只有2个master节点,暂不支持主从切换(原因后面描述),第一步要做的就是添加节点,添加节点过程异常曲折,最后不得不重新搭建了集群。(参照上一篇blog)
收获:
1 Linux vi
dd 删除当前行
u 表示撤销之前操作(和Windows 下 Ctrl+Z 效果一样)
2 redis cluster-config-file
我通过copy 多个文件夹来启动多个节点如 redis_master1 , redis_master2, redis_master3
我在redis_master2/src/的目录下面
使用如下命令
redis-server /redis_master1/redis.conf
redis-server /redis_master2/redis.conf
则在redis.conf 中定义的cluster-config-file 都会生成在 /redis_master2/src 目录下面
主从切换的必要条件
判断主节点是否down?
超过半数的master节点 ping-pong 改节点超时,超时是在redis.conf 中 cluster-node-timeout 进行设置的
1 超过半数的master节点存活(例如总共有4个master ,其中2个master 挂掉之后(同时挂掉),集群就失败,无论该master节点是否存在slave)
2 挂掉的master节点必须存在slave节点
以上2点是主从切换的必要条件。
关于挂掉之后的主节点
1 redis-cli 需要先移除失败的节点 ( cluster forget down_master_nodeid)
2 重启 redis 即可
附上cluster 的相关命令(转自 http://hot66hot.iteye.com/blog/2050676)
集群 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 槽中的键。
相关推荐
`redis-py-cluster-1.3.5.tar.gz`这个压缩包文件包含了该库的源代码和相关资源,版本号为1.3.5。 首先,让我们深入理解Redis集群。Redis集群是Redis的一个特性,它将数据分布到多个节点上,以实现水平扩展和高可用...
from rediscluster import RedisCluster rc = RedisCluster(startup_nodes=[{'host': '127.0.0.1', 'port': 7000}], decode_responses=True) rc.set('mykey', 'Hello, World!') value = rc.get('mykey') print...
"tomcat9+tomcat-cluster-redis-session-manager_4.0.zip"这个文件组合涉及到的是在Tomcat 9上实现负载均衡以及使用Redis作为Session管理器的高级配置。 首先,Tomcat 9是Apache Tomcat服务器的一个版本,它是Java ...
redis-cluster-tool 是一个非常便利的 Redis 集群管理工具。help Usage: redis-cluster-tool [-?hVds] [-v verbosity level] [-o output file] [-c conf file] [-a addr] [-i interval] [-p pid file] [-C ...
**Python库 | rediscluster-0.2.6.tar.gz** 在Python编程中,库是开发者的重要工具,它们提供了丰富的功能,让程序员能够高效地完成任务。`rediscluster`是这样一个库,专门用于与Redis Cluster进行交互。Redis ...
redis-stack-server-7.2.0-v9.arm64.snap redis-stack-server-7.2.0-v9.bionic.arm64.tar.gz redis-stack-server-7.2.0-v9.bionic.x86_64.tar.gz redis-stack-server-7.2.0-v9.bullseye.x86_64.tar.gz redis-stack-...
在本压缩包“redis-cluster-5.0.7.tar.gz”中,我们将探讨Redis Cluster的配置和使用。 首先,`redis-cluster`这个标签指的是Redis的集群模式。集群的核心概念是数据分片(sharding),即将数据分散存储在多个节点...
在本文中,我们将深入探讨`redis-py-cluster-1.3.6`这个版本,了解其特点、安装过程以及如何使用。 首先,`redis-py-cluster`库解决了版本不匹配的问题,这意味着无论你的Redis服务器是哪个版本,只要集群功能可用...
2、配置解压之后的redis-data-cache.properties(根据你的redis配置吧),配置完将这个文件放入tomcat/conf文件夹中;3、配置tomcat/cong/context.xml,增加如下两行: <Value className="tomcat.request.session....
from rediscluster import RedisCluster startup_nodes = [{"host": "localhost", "port": "7000"}] rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True) ``` **4. 数据操作** 一旦有了Redis...
2. Tomcat 8与JDK 1.7、1.8:Tomcat 8是广泛使用的版本,JDK 1.7和1.8则兼顾了对老版本Java的支持和新特性的利用。 3. Tomcat 8.5与JDK 1.7:优化了性能和功能,对JDK 1.7的支持意味着能运行在更多环境中。 4. ...
tomcat-redis-session-manager-2.0.0.jar,可用于Tomcat8下Redis的Session共享,亲测可用,还需要下载另外两个jar包:commons-pool2-2.4.2.jar和jedis-2.9.0.jar,maven仓库有,此处不再上传
使用JFinal Redis Cluster插件时,首先需要将其引入到项目中,这里我们看到有一个名为 "jfinal-rediscluster-plugin-by-shixiaotian-0.0.1.jar" 的文件,这应该是该插件的可执行版本。通常,开发者会将这个JAR文件...
redis-cluster-operator 概述 Redis Cluster Operator在Kubernetes上管理 。 操作员本身是用。 每个主节点及其从节点都由statefulSet管理,为每个statefulSet创建一个无头svc,并为所有节点创建clusterIP服务。 ...
Redis Cluster是Redis的一个分布式解决方案,它允许用户在多个节点间分散数据,提供高可用性和水平扩展性。在Windows环境下配置Redis Cluster,你需要一系列工具,这个"redis-cluster工具包(64位).7z"就提供了这些...
cluster-config-file /etc/redis-cluster/node-7001.conf cluster-node-timeout 15000 bind 192.168.43.170 protected-mode no port 7001 daemonize yes pidfile /var/run/redis_7001.pid logfile "/var/log/redis/...
docker 运行redis-trib 带密码创建redis cluster集群配置,没有密码的请自己去下载一个redis-trib.rb替换
4. **启动节点**:根据配置文件启动多个Redis实例,每个实例都要指定--cluster-enabled yes和--cluster-config-file的参数。 5. **初始化集群**:使用`redis-cli --cluster create`命令,指定所有节点的IP和端口,...
2. **Session Replication**: 当某个用户的请求被路由到不同的服务器时,由于Session信息存储在Redis中,所以每个服务器都可以访问到用户的Session,实现了无感知的Session复制。 3. **配置灵活性**: `tomcat-redis...