Redis开发与运维:数据迁移(下)
上一篇,有朋友留言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开发与运维:数据迁移(下)的更多相关文章
- Redis开发与运维学习笔记
<Redis开发与运维>读书笔记 一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争 ...
- Redis开发与运维:SDS
STRING 我们会经常打交道的string类型,在redis中拥有广泛的使用.也是开启redis数据类型的基础. 在我最最开始接触的redis的时候,总是以为字符串类型就是值的类型是字符串. 比如: ...
- Redis 开发与运维
Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...
- Redis实战(七)Redis开发与运维
Redis用途 1.缓存 Redis提供了键值过期时间设置, 并且也提供了灵活控制最大内存和内存溢出后的淘汰策略. 可以这么说, 一个合理的缓存设计能够为一个网站的稳定保驾护航. 2.排行榜系统 Re ...
- 《Redis开发与运维》读书笔记
一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它 ...
- 《Redis开发与运维》快速笔记(一)
1.前言&基本介绍 在原始的系统架构中,我们都由程序直接连接DB,随着业务的进一步开展,DB的压力越来越大,为了缓解DB的这一压力,我们引入了缓存,在程序连接DB中加入缓存层, 从而减轻数据库 ...
- 《Redis开发与运维》
第1章 初识Redis 1. Redis介绍: Redis是一种基于键值对(key-value)的NoSQL数据库. 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串).has ...
- Redis开发与运维:数据迁移
问题 最近项目重构,提前想把一台上的redis实例转移到另一台redis实例上. 源redis数据库:阿里云Redis.VPC网络.Server版本2.8.19 目标数据库:阿里云Redis.VPC网 ...
- redis 开发与运维 学习心得1
主要是命令相关 第一章 初识Redis 1.redis是基于键值对的NoSQL. 2.redis的值可以是 string, hash, list, set, zset, bitmaps, hyperl ...
随机推荐
- springboot数据库主从方案
本篇分享数据库主从方案,案例采用springboot+mysql+mybatis演示:要想在代码中做主从选择,通常需要明白什么时候切换数据源,怎么切换数据源,下面以代码示例来做阐述: 搭建测试环境(1 ...
- 七个开源的 Spring Boot 前后端分离项目,一定要收藏!
前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开发,以免在公司干了两三年 ...
- python根据搜索词下载百度图片
# coding=utf-8 """根据搜索词下载百度图片""" import re import urllib import os def ...
- idea报错 Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource
核对一下控制器是不是写了相同的路径...org.springframework.beans.factory.BeanCreationException: Error creating bean wit ...
- C#中将表示颜色的string转换成Color
场景 在Winform中需要存储某控件的Color属性,存储的是string字符串, 然后再对控件进行赋值时需要将string转换成Color. 实现 myPane.YAxis.Color = Sys ...
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理一 (十九)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- 配置hibernate访问mysql
在之前搭建spring mvc项目这篇的基础上继续集成,引入hibernate支持 一.添加jar包引用 修改pom.xml文件,加入: <dependency> <groupId& ...
- 面试官: 聊一聊Babel
点击关注本公众号获取文档最新更新,并可以领取配套于本指南的 <前端面试手册> 以及最标准的简历模板. 前言 Babel 是现代 JavaScript 语法转换器,几乎在任何现代前端项目中都 ...
- RDD基本操作之Action
Action介绍 在RDD上计算出来一个结果 把结果返回给driver program或保存在文件系统,count(),save 常用的Action reduce() 接收一个函数,作用在RDD两个类 ...
- jenkins插件之Publish Over SSH的使用
1,安装 在插件管理选项搜索Publish Over SSH,然后点击安装即可完成 2,安装完成之后,就可以在jenkins的配置系统中找到Publish Over SSH 配置完服务器之后,然后在项 ...