当前位置:网站首页>redis5.0的槽点迁移,随意玩(单机迁移集群)
redis5.0的槽点迁移,随意玩(单机迁移集群)
2022-06-28 09:00:00 【学无止境王小帅】
最近在做redis单机版本迁移到集群版,所以当时用的redis3.0版本吧,迁移的过程中遇到一个问题,就是如果redis5.0之前的版本,在移动槽点的时候,假如槽点内有值的话,导致报错:Syntax error ,try client(list|kill|getname|setname|pause|reply) ,主要就是需要修改redis-trib.rb文件的move_slot这个方法,绕过 clientCommand,直接执行 migrateCommand(去掉.client即可)。如下图

修改之后,就可以reshard带有数据的slot槽了。假如没有修改trib文件,出现了上面的错误(Syntax error ,try client),此时那个有数据的槽点,也会不可移动。 执行cluster setlot 槽点的值 stable即可。
以上的只不过是我曾经操作redis3.0数据迁移的时候出现的问题和解决办法。下面主要说说redis5.0后,操作slot的命令,玩转redis5.0不在话下。
首先我们的redis是集群版本,三主三从,这里就不讲redis的sentinel哨兵模式了(监控,提醒,自动故障转移几个特性)。
直接上图

redis5.0版本舍弃了trib文件,改用redis-cli操作集群,这点也算是改进优化不少了。

可以看到redis的版本。

redis-cli --cluster check host:port此命令可以查看集群的各个节点的信息。
现在我们开始把7002和7003的所有槽点都移动到7001上:


问移动多少个槽点,我们移动7002的全部,5462个


再把7003的所有槽点移动到7001上


此时此刻,7001上已经有了所有的槽点,现在想数据迁移的同学,只需要把单机版的dump.rdb文件拷贝到集群下即可。
下面开始均分槽点,

这里使用rebalance的时候,因为7002和7003上面没有槽点,所以是不参与选举的,也无法参与均衡槽点。

我们可以使用--cluster-use-empty-masters这个参数,即使7002和7003没有槽点也可以参与均分槽点。

可以看到槽点均分了,而且从节点也均分了。

我们圈住的这个可以指定当前从节点到哪一个主节点下,可以自由分配,随意玩转redis5.0的槽点。还有forget,是为了删除某个节点后,其他节点有保留信息,仍旧会进行心跳通信,所以需要每一个保留的节点下,都要进行forget。还有一些其他的好玩的命令,这里就不一一介绍了。谢谢你的到来。
边栏推荐
- 如何抑制SiC MOSFET Crosstalk(串擾)?
- webrtc优势与模块拆分
- STL - inverter
- Chrome devtools
- Anniversary party
- Privacy computing fat----- offline prediction
- DEJA_ Vu3d - 051 of cesium function set - perfect realization of terrain excavation
- 如何实现基于 RADIUS 协议的双因子认证 MFA?
- Application of energy management system in iron and steel enterprises
- Loss loss function
猜你喜欢

Fire fighting work and measures in Higher Vocational Colleges

【云原生 | Kubernetes篇】深入了解Pod(六)

APICloud携手三六零天御,助力企业守好App安全“第一关”

Why does select * lead to low query efficiency?

webrtc优势与模块拆分

The Cassandra cluster reinstalls and starts from the node. An error is reported. There is an existing solution

STL -- binder

Apiccloud, together with 360 Tianyu, helps enterprises keep the "first pass" of APP security

DEJA_VU3D - Cesium功能集 之 051-地形开挖完美实现

TCP
随机推荐
Error: `brew cask` is no longer a `brew` command. Use `brew <command> --cask` instead.
Container adapter - stack: stack queue: queue priority_ Queue: priority queue
为什么SELECT * 会导致查询效率低?
Batch modify tables and sorting rules for fields in tables
Implementation of single sign on
如何实现基于 RADIUS 协议的双因子认证 MFA?
Robot Rapping Results Report
Chrome devtools
Applet: traverse the value of an array in the list, which is equivalent to for= "list" list An item in comment
How to implement two factor authentication MFA based on RADIUS protocol?
Lilda low code data large screen, leveling the threshold of data application development
Why does select * lead to low query efficiency?
TCP
Analysis of prepaid power purchase device
理解IO模型
Not so Mobile
Discussion on safety management of centralized maintenance construction site of substation under the mode of operation and maintenance
What is the bandwidth of the Tiktok server that can be used by hundreds of millions of people at the same time?
如何抑制SiC MOSFET Crosstalk(串扰)?
Super Jumping! Jumping! Jumping!