redis的数据迁移

redis-migrate-tool工具是由唯品会开源的,用于在多种redis架构间迁移数据。该工具基于redis复制,在迁移过程中,源redis集群仍可对外提供服务;若目标集群是Twemproxy,其会将数据直接导入后端的redis节点;能通过监控端口,查看迁移状态,且迁移完成后,可进行抽样检查。

安装redis-migrate-tool

# yum install automake libtool autoconf bzip2 -y

# git clone https://github.com/vipshop/redis-migrate-tool.git

# cd redis-migrate-tool

# autoreconf -fvi

# ./configure

# make

# src/redis-migrate-tool -h

This is redis-migrate-tool-0.1.0

...

redis-migrate-tool工具依据配置文件的配置,完成从源redis集群到目标集群的数据迁移。配置文件包括3部分:source,target和common。如下以从Redis CLuster迁移数据到Twemproxy集群为例,看下整个过程。

$ cat rmt.conf

[source]

type: redis cluster

servers:

- 127.0.0.1:6879

[target]

type: twemproxy

hash: fnv1a_64

distribution: ketama

redis_auth: abcdefg

servers:

- 127.0.0.1:6379:1

- 127.0.0.1:6389:1

[common]

listen: 0.0.0.0:8888

step: 1

mbuf_size: 512

迁移开始

$ redis-migrate-tool -c rmt.conf -o rmt.log -d

观察迁移进度

$ tail -f rmt.log

...

观察迁移状态

$ redis-cli -p 8888

127.0.0.1:8888> info

# Server

version:0.1.0

...

退出工具

127.0.0.1:8888> shutdown

not connected>

抽样检查迁移结果

$ redis-migrate-tool -c rmt.conf -C redis_check

Checked keys: 1000

Inconsistent value keys: 0

...

Check job finished, used 0.043s

若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).

原文地址:http://blog.51cto.com/coveringindex/2153096

时间: 2024-10-14 04:49:06

redis的数据迁移的相关文章

从MySQL到Redis 提升数据迁移的效率

场景是从MySQL中将数据导入到Redis的Hash结构中.当然,最直接的做法就是遍历MySQL数据,一条一条写入到Redis中.这样可能没什么错,但是速度会非常慢.而如果能够使MySQL的查询输出数据直接能够与Redis命令行的输入数据协议相吻合,可能就省事多了.根据测试800w的数据迁移,时间从90分钟缩短到2分钟.具体案例如下:MySQL数据表结构: CREATE TABLE events_all_time (id int(11) unsigned NOT NULL AUTO_INCREM

Redis单机数据迁移至Sentinel集群

1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0

Redis数据迁移方案

场景 Redis实例A ---> Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: redis-dump -h host1 -p 6379 -d 1 --json > mydb.json针对RedisB: cat mydb.json | redis-dump --convert | redis-cli 方案二:参考: http://www.zlovezl.cn/articles/mig

Redis利用持久化进行数据迁移

前言 Redis是一个开源的高性能键值对数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存.队列系统等不同的角色. Redis持久化了解 为了让性能更加优异,Redis默认是把所有的数据都存在内存中的.但是当服务器重启或程序异常崩溃时,Redis的数据就会全部丢失.因此出现了持久化的概念.持久化就是将存在内存中的数据同步到磁盘来保证持久化. 1.Redis持久化的方式     两种: RDB 和 AOF RDB 持久化可以在指定的时间间隔内生成

redis 数据迁移笔记

老服务器上内存一直报警,所以要把一部分redis数据迁移到新服务器上去. 迁移的方式有两种,一种是停服务器,搬迁数据:另一种通过主从同步转移. 停服务器,搬迁数据 首先在原服务器上执行redis-cli shutdown命令,该命令会触发保证写RDB文件以及将AOF文件写入磁盘,不会丢失数 停服务器,搬迁数据 首先在原服务器上执行redis-cli shutdown命令,该命令会触发保证写RDB文件以及将AOF文件写入磁盘,不会丢失数据. 如果是kill -9 pid就会丢失数据. 然后将RDB

redis cluster异地数据迁移,扩容,缩容

由于项目的服务器分布在重庆,上海,台北,休斯顿,所以需要做异地容灾需求.当前的mysql,redis cluster,elastic search都在重庆的如果重庆停电了,整个应用都不能用了. 现在考虑第一步做重庆和上海的异地容灾,大概测试了一下重庆的几台服务器之间大概是13m/s的传输速度也就是说100M的局域网带宽,重庆到上海只有1.2m/s的传输速度,大概10M的局域网带宽. 第一个方案先考虑简单的  mysql 重庆上海主主同步  redis cluster的master节点默认都设置在

基于 Redis 构建数据服务

今天我们来聊聊如何基于redis数据库扩展数据服务,如何实现分片(sharding)以及高可用(high availability). 分布式系统不存在完美的设计,处处都体现了trade off. 因此我们在开始正文前,需要确定后续的讨论原则,仍然以分布式系统设计中的CAP原则为例.由于主角是redis,那性能表现肯定是最高设计目标,之后讨论过程中的所有抉择,都会优先考虑CAP中的AP性质. 两个点按顺序来,先看分片. 何谓分片?简单来说,就是对单机redis做水平扩展. 当然,做游戏的同学可能

redis集群同步迁移方法(二):通过redis-migrate-tool实现

前篇介绍的redis replication方法,操作步骤多,而且容易出错.在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool等工具.实验演示使用redis-migrate-tool,将redis cluster 迁移到一个单实例redis中. 1.redis-migrate-tool的安装 见https://github.com/vipshop/redis-migrate-tool 需要注意的是安装redis-migra

安全稳定实现redis cluster自动化迁移

背景 目前redis集群最火的是codis和redis cluster(官方),但官方自带工具并没有支持密码操作.那么需要密码认证使用redis cluster集群的同学要仔细看了哦. 相信大家很多人已经使用了redis cluster,而且也肯定会用到核心应用,你是否考虑过如下问题? redis cluster无密码,被改数据 redis cluster无密码,被flushall (你是否有要哭的冲动哈哈) redis cluster无密码,数据在光天化日(你对用户不负责) redis clu