redis-cluster 集群搭建和迁移(二)

2024-08-22 20:32

本文主要是介绍redis-cluster 集群搭建和迁移(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇写了redis-cluster集群的搭建过程,这里讲一下redis的迁移过程,因为以前的生产环境是单实例的,所有迁移起来比较麻烦,参考了一下网上的资料,可以使用修改卡槽的办法来实现迁移。

具体的思路是这样,redis 包含16348 个卡槽,是hash分布的,所有的数据都分布在上面,先把redis-cluster所有的卡槽全部集中到一个节点9000上,然后在单节点上通过rds 持久化数据,把持久化后的数据迁移到redis-cluster 集群节点9000上,在把9000节点上的卡槽平均分配给其他节点。整个迁移过程就完成了

首先查看redis-cluster卡槽分布

/usr/local/redis/redis-5.0.5/src/redis-cli --cluster check 192.168.53.134:9000

然后把所有的卡槽全部分配给9000

/usr/local/redis/redis-5.0.5/src/redis-cli --cluster reshard 192.168.53.134:9000

查询单机redis dump 目录

config get dir

保存dump 文件

save

关闭redis-cluster 节点

/usr/local/redis/redis-5.0.5/src/redis-cli -h 192.168.1.53 -p 9000 -c shutdown

拷贝dump 文件至redis-cluster 9000节点目录,重启9000节点,数据就拷贝到redis-cluster集群了

 

再把卡槽重新分配给其他节点就可以了

最后把卡槽平均分配给其他节点
/usr/local/redis/redis-5.0.5/src/redis-cli --cluster reshard 192.168.53.134:9000 --cluster-from 30542735717dd45d0cfe6f38d91e164b23017b36 --cluster-to 9f7c851dc9050a236f6d23585320a8723b1cac86 --cluster-slots 2731
/usr/local/redis/redis-5.0.5/src/redis-cli --cluster reshard 192.168.53.134:9000 --cluster-from 30542735717dd45d0cfe6f38d91e164b23017b36 --cluster-to 57ddb3016bd4540a51d05fafe62525c16f6fec24 --cluster-slots 2731
/usr/local/redis/redis-5.0.5/src/redis-cli --cluster reshard 192.168.53.134:9000 --cluster-from 30542735717dd45d0cfe6f38d91e164b23017b36 --cluster-to ff7101567fc6e88542ac850d974991a58723efbc --cluster-slots 2731
/usr/local/redis/redis-5.0.5/src/redis-cli --cluster reshard 192.168.53.134:9000 --cluster-from 30542735717dd45d0cfe6f38d91e164b23017b36 --cluster-to 7ad32731d45731b6feae98cb0b2d0556ad5b6de8 --cluster-slots 2730
/usr/local/redis/redis-5.0.5/src/redis-cli --cluster reshard 192.168.53.134:9000 --cluster-from 30542735717dd45d0cfe6f38d91e164b23017b36 --cluster-to 765551aa364e61e2e867023e774124a93fb0d263 --cluster-slots 2730

 

这篇关于redis-cluster 集群搭建和迁移(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097320

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

Redis中使用布隆过滤器解决缓存穿透问题

一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。 二、布隆过滤器原理 布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因