上一篇,有朋友留言redis-port,借此机会我尝试使用一下redis-port这个同步工具

redis-port 已编译版

    https://github.com/CodisLabs/redis-port/releases

     cd 到解压目录

redis-dump

定义:持久化数据

执行:$ ./redis-dump 127.0.0.1:6999 -o dd/dump.rdb

验证
$ ls -ls
总用量 4
4 -rw-r--r-- 1 sunchong sunchong 217 10月 21 17:36 dump.rdb

redis-decode

    定义:dumped payload to human readable format (hex-encoding)【反序列化rdb,更加容易理解】

    Help:$ ./redis-decode --help

Usage:
    redis-decode [--ncpu=N] [--input=INPUT|INPUT] [--output=OUTPUT]
    redis-decode  --version

Options:
    -n N, --ncpu=N                    Set runtime.GOMAXPROCS to N.
    -i INPUT, --input=INPUT           Set input rdb encoded file.  [default: /dev/stdin].
    -o OUTPUT, --output=OUTPUT        Set output file. [default: /dev/stdout].

Examples:
    $ redis-decode -i dump.rdb -o dump.log
    $ redis-decode    dump.rdb -o dump.log
    $ cat dump.rdb | redis-decode --ncpu=8 > dump.log
    执行:$ ./redis-decode -i dump.rdb -o stdout
2019/10/21 15:42:40 decode.go:59: [INFO] decode: input = "dump.rdb", output = "stdout"
2019/10/21 15:42:40 decode.go:110: [INFO] decode: (r,w,o) = (read,write,objects)
2019/10/21 15:42:40 decode.go:135: [INFO] decode: file = 134 - [100.00%]   (r,w,o)=(134,114,2)   ~  (134,114,-)
2019/10/21 15:42:40 decode.go:139: [INFO] decode: done
    验证:$ vim stdout 

    {"db":0,"type":"list","key":"right","index":0,"value":"r1"}
    {"db":0,"type":"string","key":"QBT","value":"value1"}

redis-restore

    从 6999 db0 dump.rdb 持久化到 7999 db0
    from 127.0.0.1:6999   to 127.0.0.1:7999

    执行:$ ./redis-restore -i dump.rdb -t 127.0.0.1:7999
2019/10/21 17:05:39 restore.go:70: [INFO] restore: input = "dump.rdb", aoflog = "" target = "127.0.0.1:7999"
2019/10/21 17:05:39 restore.go:126: [INFO] restore: (r,f,s/a,f,s) = (rdb,rdb.forward,rdb.skip/aof,rdb.forward,rdb.skip)
2019/10/21 17:05:39 restore.go:155: [INFO] restore: size = 134 - [100.00%,  0.00%]   (r,f,s/a,f,s)=(134,0,2/0,0,0)   ~  (134,-,-/0,-,-)
2019/10/21 17:05:39 restore.go:159: [INFO] restore: done
    验证:$ ./redis-restore -i dump.rdb -t 127.0.0.1:7999
127.0.0.1:7999> KEYS *
1) "right"
2) "QBT"

redis-sync

    定义:实例间实时同步

    执行:$ ./redis-sync 127.0.0.1:6999 -t 127.0.0.1:7999

    验证:
2019/10/21 17:41:16 sync.go:76: [INFO] sync: master = "127.0.0.1:6999", target = "127.0.0.1:7999"
2019/10/21 17:41:16 sync.go:109: [INFO] sync: runid = "42d23b2a5d2a4fcce612854174bfc6db89d52cca", offset = 0
2019/10/21 17:41:16 sync.go:111: [INFO] sync: rdb file = 217 (217)
2019/10/21 17:41:16 sync.go:208: [INFO] sync: (r/f,s/f,s) = (read,rdb.forward,rdb.skip/rdb.forward,rdb.skip)
2019/10/21 17:41:17 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(217/2,0/0,0)     ~  (217/-,-/-,-)     ~  speed=(217/2,0/0,0)
2019/10/21 17:41:18 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(217/2,0/0,0)     ~  (217/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:19 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(217/2,0/0,0)     ~  (217/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:20 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(14/0,0/1,0)
2019/10/21 17:41:21 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:22 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:23 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:24 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:25 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:26 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:27 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:28 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:29 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(231/2,0/1,0)     ~  (231/-,-/-,-)     ~  speed=(0/0,0/0,0)
2019/10/21 17:41:30 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(245/2,0/2,0)     ~  (245/-,-/-,-)     ~  speed=(14/0,0/1,0)
2019/10/21 17:41:31 sync.go:250: [INFO] sync: rdb = 217 - [100.00%]   (r/f,s/f,s)=(245/2,0/2,0)     ~  (245/-,-/-,-)     ~  speed=(0/0,0/0,0) 
    源:127.0.0.1:6999
127.0.0.1:6999> SET sc sc1
OK
127.0.0.1:6999> SET sc sc2
OK
127.0.0.1:6999> SET sc sc3
OK
127.0.0.1:6999> SET sc sc4
OK
127.0.0.1:6999> SET sc sc5
OK
127.0.0.1:6999>
    目标:127.0.0.1:7999
127.0.0.1:7999> get sc
"sc5"
127.0.0.1:7999>

Redis开发与运维:数据迁移(下)的更多相关文章

  1. Redis开发与运维学习笔记

    <Redis开发与运维>读书笔记   一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争 ...

  2. Redis开发与运维:SDS

    STRING 我们会经常打交道的string类型,在redis中拥有广泛的使用.也是开启redis数据类型的基础. 在我最最开始接触的redis的时候,总是以为字符串类型就是值的类型是字符串. 比如: ...

  3. Redis 开发与运维

    Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...

  4. Redis实战(七)Redis开发与运维

    Redis用途 1.缓存 Redis提供了键值过期时间设置, 并且也提供了灵活控制最大内存和内存溢出后的淘汰策略. 可以这么说, 一个合理的缓存设计能够为一个网站的稳定保驾护航. 2.排行榜系统 Re ...

  5. 《Redis开发与运维》读书笔记

    一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它 ...

  6. 《Redis开发与运维》快速笔记(一)

    1.前言&基本介绍 在原始的系统架构中,我们都由程序直接连接DB,随着业务的进一步开展,DB的压力越来越大,为了缓解DB的这一压力,我们引入了缓存,在程序连接DB中加入缓存层, 从而减轻数据库 ...

  7. 《Redis开发与运维》

    第1章 初识Redis 1. Redis介绍: Redis是一种基于键值对(key-value)的NoSQL数据库. 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串).has ...

  8. Redis开发与运维:数据迁移

    问题 最近项目重构,提前想把一台上的redis实例转移到另一台redis实例上. 源redis数据库:阿里云Redis.VPC网络.Server版本2.8.19 目标数据库:阿里云Redis.VPC网 ...

  9. redis 开发与运维 学习心得1

    主要是命令相关 第一章 初识Redis 1.redis是基于键值对的NoSQL. 2.redis的值可以是 string, hash, list, set, zset, bitmaps, hyperl ...

随机推荐

  1. DevOps平台

    DevOps定义(来自维基百科): DevOps(Development和Operations的组合词)是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops) ...

  2. JDK8时间工具类

    JDK8添加了java.time包,提供了很多方便.用得比较多的几个类:Instant 在时间线上模拟单个瞬时点Duration 以秒和纳秒为单位模拟一个数量或时间量.可以使用其他基于持续时间的单位访 ...

  3. myeclipse一直停留在Loading workbench界面上以及停滞启动页不动的处理办法

    找到myeclipse的工作目录,比如我的叫springworkspace(F:\springworkspace\.metadata\.plugins),在.metadata\.plugins中删掉以 ...

  4. tomcat日志信息查看

    不要老只看 start in xxx ms 后的信息,有时在部署项目时可能就出错了呢? 按照下面这样子做,会使用tomcat输出的错误信息更为详细 在WEB-INF/classes目录下新建一个名为 ...

  5. python中os模块再回顾

    先看下我的文件目录结构 F:\PYTHON项目\ATM购物车\7月28 在此目录下的文件如下: 封装.py 模块os.sys复习.py 运行当前的文件是模块os.sys复习.py 1.获取当前文件所在 ...

  6. Cannot find class: com.mysql.jdbc.Driver错误及解决办法。

    在刚刚开始搭建Mybatis源码解析,一步一步从浅入深 简单示例的时候,我使用的是mysql 5.1.12版本的驱动包.运行时出现如下错误: Cause: java.sql.SQLException: ...

  7. Spring Cloud Gateway 之请求坑位[微服务IP不同请求会失败]

    问题产生背景 在使用Spring Cloud Gateway过程中,希望配置多Routes映射不同的微服务,因为Gateway 和Zuul的访问路径不同(zuul 会带有服务service Id),造 ...

  8. 大文件分割、命令脚本 - Python

    日志文件分割.命名 工作中经常会收到测试同学.客户同学提供的日志文件,其中不乏几百M一G的也都有,毕竟压测一晚上产生的日志量还是很可观的,xDxD,因此不可避免的需要对日志进行分割,通常定位问题需要针 ...

  9. jenkins导致磁盘占满问题

    背景 今天登陆jenkins提示磁盘空间不足,且构建发生错误 排查问题 cd到jenkins 安装目录 执行df -h 发现root目录沾满 执行 du -ah --max-depth=1 发现是.j ...

  10. SpringBoot集成Spring Security入门体验

    一.前言 Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权. 二者区别 Spring Security:重量级安全框架 Apache S ...