Redis集群添加节点
首先我们要新建立一个节点,将redis01 复制一份改为redis07,然后修改端口号也改为7007 ,然后我们执行[root@localhost redis07]# ./redis-server redis.conf 启动以后,然后进行查看,发现有一个端口号为7007的redis实例已经启动了!我们怎么把这个redis 实例添加到集群中呢。
在将7007 端口号的redis实例添加到集群之前,一定要确保这个redis实例没有存储过数据,也不能持久化的数据文件,否则在添加的时候会报错的!我们执行命令 ./redis-trib add-node127.0.0.1:7007 to cluster 127.0.0.1:7001 就可以将端口号为7007的实例添加到redis-cluster中。如下如所示。
我们执行在任意一个客户端下执行 cluster nodes 命令,可以看到7007 已经作为主节点添加到我们的集群中了,但是可以看到他没有分配哈希槽,没有分配哈希槽的话表示就没有存储数据的能力,所以我们需要将其他节点上的哈希槽分配到这个节点上。
下边我们看一下如何分配哈希槽。我们随便进入一个客户端,然后我们执行 ./redis-trib.rb reshard 192.168.20.140:7001, 就可以看到如下图所示提示,问我们需要移动多少个哈希槽,我们在这里移动1000个。
完以后,又会问我们需要覆盖的节点id是什么,这个id就是我们新创建的节点id。然后让我们输入源节点,如果这里我们输入all的话,他会随机的从所有的节点中抽取1000个作为新节点的哈希槽。
我们输入all以后,会出下下图所示东西,表示hash槽正在移动。
移动完以后,我们进入客户端,执行cluster nodes 命令,查看集群节点的状态,我们会看到原来没有哈希槽的7007节点,分配到了1000个哈希槽,而且是不连续的。说明是从原来的三个节点中抽取的。
这样我们一个新的节点就添加好了, 但是我们发现总共是7个节点,其中的六个互为住备,但有一个是有主,没有备,所以我们需要在为该节点添加一个备份节点。我们在创建一个实例,端口号为7008,启动以后我们只命令./redis-trib.rb add-node --slave127.0.0.1:7008 127.0.0.1:7007 ,第一个实例127.0.0.1:7008为备份节点,第二个实例127.0.0.1:7007为主节点。然后我们在执行,cluster nodes 命令,就会发现新添加的节点已经作为7007 备份节点开始工作了!
Redis 集群删除节点
删除节点也分两种,一种是主节点,一种是从节点。在从节点中,我们没有分配哈希槽,所以删除很简单,我们直接执行./redis-trib.rb del-node 127.0.0.1:700865ee465423c925326a5137668541151b4c37d2d9 有两个参数ip:port 和节点的id。 我们就可以将从节点从集群中删除了。
而在删除主节点的时候,因为在主节点中存放着数据,所以我们在删除之前,要把这些数据迁移走,并且把该节点上的哈希槽分配到其他主节点上。
我们执行./redis-trib.rb reshard 127.0.0.1:7007,问我们有多少个哈希槽要移走,因为我们这个节点上有1000 个所以我们这里输入1000,如下如所示。
这样期间会询问我们是否要从新分配,我们输入yes。然后就看到7007上的所有节点都被移动到了7001.这样我们就操作完了。然后再执行./redis-trib.rb del-node127.0.0.1:7007 61f786c40bcc170006a440abd7dc773e6dd15a19 ,就会看到7007 端口的实例也被从集群中移除了。
我们进入客户端,看一下集群节点的情况。会看到7007 节点和7008 节点就都被我们移除集群了!
相关推荐
Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下, 这些命令将降低Redis集群的性能, 并导致不可预测的行为。 Redis 集群通过...
docker-compose 形式部署 redis 1主2从3哨兵 redis 多节点高可用 redis 主从哨兵 redis 集群高可用 redis 哨兵 redis 高可用
以下是关于使用Docker部署Redis集群节点的一些资源: - [Redis Docker官方镜像文档](https://hub.docker.com/_/redis):官方文档,包含了Redis Docker镜像的使用说明、示例和一些技术细节等。 - [Redis集群草稿设计...
集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器...
Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 支持单实例模式,集群主从模式、哨兵模式等部署
redis集群采用无中心节点方式实现,无需proxy代理,客户端直接与redis集群的每个节点连接,根据同样的hash算法计算出key对应的slot,然后直接在slot对应的redisj节点上执行命令。在redis看来,响应时间是最苛刻的...
Redis官网:http://redis.io ...Redis 版本:redis-3.0 (因为 Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,请在安装时去官网选用最新版) 用户:root 安装目录:/usr/local/redis
2.2 要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。因为我没有那么多服务器,也启动不了那么多虚拟机,所在这里搭建的是伪分布式集群,即一台服务器虚拟运行6个...
两级缓存在redis的方案上做一步优化,在缓存到远程redis的同时,缓存一份到本地进程ehcache(此处的ehcache不用做集群,避免组播带来的开销),取缓存的时候会先取本地,没有会向redis请求,这样会减少应用服务器<–...
如何做到多节点缓存同步呢,可使用redis消息队列广播功能,使用Redis订阅一个主题,注册监听,当有数据变更的时候往这个主题发布一个消息,集群中的各个节点都会收到这个消息执行本地缓存的更新操作。
Redis 介绍 Reids常用5种数据类型 一个字符串类型的值能存储最大容量是多少? Redis 有哪些适合的场景? Redis的并发竞争问题如何解决?...Redis 集群最大节点个数是多少? Redis 集群如何选择数据库?
Redis 是我们目前大规模使用的缓存中间件,由于它强大...单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。
Redis 是我们目前大规模使用的缓存中间件,由于它强大...单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。
22、Redis 集群最大节点个数是多少? 23、Redis 集群如何选择数据库? 24、怎么测试 Redis 的连通性? 25、Redis 中的管道有什么用? 26、怎么理解 Redis 事务? 27、Redis 事务相关的命令有哪几个? 28、Redis key...
Redis的集群是如何实现高可用的? 你如何保证Redis的安全性? 你如何优化Redis的性能? 在什么情况下你会使用Redis事务? Redis事务的ACID性质是什么? Redis的Lua脚本有什么作用? 你如何理解Redis的发布/订阅功能...
启动6个redis节点,然后使用sudo /home/tydic/redis-3.2.13/src/redis-trib.rb create --replicas 1 192.168.129.98:7000 192.168.129.99:7003 192.168.129.99:7002 192.168.129.126:7005 192.168.129.126:7004 192....
本系列课程从redis基础到高级,老师手把手教你搭建高可用集群,解决redis集群常见问题,思路清晰,旨在挑战高薪。 课程亮点: 1、入门门槛低,零基础也能听懂; 2、课程体系完整全面,从指令到api操作,...
redis缓存数据库的安装指南和相关需要的安装文件,包含了redis文件的集群多节点配置
基本回答:哨兵主要就是启动哨兵(redis特殊)节点,对主节点进行监控,如果半数以上发现ping主节点不通了,认为主节点挂了,则进行故障转移,就是选出一个从节点代替主节点 2.Rediscluster集群模式 基本回答:Redis...
还在重复的复制粘贴缓存读写代码吗?一遍遍的重复: Object value = cache.get("CACHE");...缓存读取自redis的slave节点,写入到redis的master节点 来自 杭州斯凯网络科技有限公司 标签:SimpleCache