迁移键:

move key db 用于在Redis内部进行数据迁移

dump key + restore key ttl value 可以实现在不同的Redis实例之间进行数据迁移

127.0.0.1:6379> dump name

"\x00\x05allen\a\x00\x82\x9a*T/\xb9\x9b\x87"

127.0.0.1:6379> dump age

"\x00\xc0!\a\x006.9\xfaQ\x06\xe8\r"

127.0.0.1:6379> dump pass

"\x00\x06abc123\a\x00\x90\t\xe8\x1b\xf2\xd4\x8b\xec"

192.168.1.122:6379> restore name 0 "\x00\x05allen\a\x00\x82\x9a*T/\xb9\x9b\x87"

OK

192.168.1.122:6379> restore age 0 "\x00\xc0!\a\x006.9\xfaQ\x06\xe8\r"

OK

192.168.1.122:6379> restore pass 0 "\x00\x06abc123\a\x00\x90\t\xe8\x1b\xf2\xd4\x8b\xec"

OK

migrate host port key|"" destination-db timeout [copy] [replace] [keys key [key ...]]

127.0.0.1:6379> migrate 192.168.1.122 6379 name 0 5000  默认是删除源库的键值

OK

127.0.0.1:6379> migrate 192.168.1.122 6379 "" 0 5000 copy keys age pass  加copy和replace源库不删除键值

OK

# cat redis_mv.sh

#!/bin/bash

redis-cli -h 172.20.0.1 -p 6379 -a password -n 0 keys "*" | while read key

do

redis-cli -h 172.20.0.1 -p 6379 -a password -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 172.20.0.2 -p 6379 -a password -n 1 -x restore $key 0

echo "migrate key $key"

done

#!/bin/bash

#redis 源ip

src_ip=192.168.0.1

#redis 源port

src_port=6379

#redis 源库

src_db=11

#redis 目的ip

dest_ip=192.168.0.1

#redis 目的port

dest_port=6379

#redis 目的

dest_db=6

#redis 密码

pw=123456

#要迁移的key前缀

#key_prefix=com.example.test

redis-cli -h $src_ip -p $src_port -a $pw -n $src_db keys "*" | while read key

do

redis-cli -h $src_ip -p $src_port -a $pw -n $src_db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $key 0

echo "migrate key $key"

done

#!/bin/bash

#redis 源ip

src_ip=192.168.0.1

#redis 源port

src_port=6379

#redis 源库

src_db=1

#redis 目的ip

dest_ip=192.168.0.1

#redis 目的port

dest_port=6379

#redis 目的

dest_db=3

#redis 密码

pw=123456

#要遍历的key

k=(medical_record:id medical_record_attachment:id patient_family_present:id patient_present:id patient_disease:id family_disease:id patient_allergy:id history_allergy:id)

#要迁移的key前缀

#key_prefix=com.example.test

for loop in ${k[*]}

do

redis-cli -h $src_ip -p $src_port -a $pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $loop 0

echo "The value is: $loop"

done

Redis迁移键的更多相关文章

  1. 深入理解Redis主键失效原理及实现机制

    http://blog.jobbole.com/71095/ 对于缓存失效,不同的缓存有不同的处理机制,可以说是大同中有小异,作者通过对Redis 文档与相关源码的仔细研读,为大家详细剖析了 Redi ...

  2. redis对键进行的相关操作

    redis对键操作的相关命令以及如何在python使用这些命令 redis对键操作的命令: 命令 语法 概述 返回值 Redis DEL 命令 del key [key ...] 该命令用于在 key ...

  3. redis中键空间通知

    通过redis的键空间通知,当redis删除过期key的时候,及时更新mongodb数据库中user的状态 var Redis = require('ioredis'); var redis = ne ...

  4. redis主键失效机制

    Memcached删除主键的方式与Redis有何异同 首先,Memcached 在删除失效主键时也是采用的消极方法,即 Memcached 内部也不会监视主键是否失效,而是在通过 Get 访问主键时才 ...

  5. 深入理解Redis主键失效原理及实现机制(转)

    原文:深入理解Redis主键失效原理及实现机制 作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Redis 也不例外.在 Redis 提供的诸多命令中,EXPIRE.EXPIREA ...

  6. redis学习笔记——Redis过期键的删除策略

    Redis过期键的删除策略 对于过期键一般有三种删除策略 定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作: 惰性删除:放任键过期 ...

  7. Redis主键失效 - 原理及实现机制

    [数据记录过期源码][http://blog.csdn.net/yuanrxdu/article/details/21233047] [http://blog.jobbole.com/71095/] ...

  8. redis空间键详解

    前言 redis的空间键通知是在2.8.0版本以后加入的,客户端通过发布订阅的方式,订阅某个频道,接收通过某种方式影响redis中数据的事件. 目录: 1.空间键事件分类 2.如何启用redis的空间 ...

  9. Redis 过期键的设置、获取和删除过期时间

    Redis 过期键的设置.获取和删除过期时间 转自http://blog.51cto.com/littledevil/1813956 设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内 ...

随机推荐

  1. Linux-ubuntu英文版输入法不能切换中文输入法问题解决办法

    1:System Settings中点击Language Support​ 2. ​ 3. ​ 4. ​ 5. ​ 6. ​ 7.注意不要勾选Only Show Current Language ​

  2. 【sed】进阶

      sed的基本用法已能满足大多数需求,但当需要时,知道这些高级特效的存在及如何使用将提供莫大的帮助!   1. 多行命令         sed编辑器提供三个用于处理多行文本的特殊命令: N:将数据 ...

  3. FFmpeg之av_register_all()

    1. av_register_all() 该函数位于 libavformat/allformats.c 中. 该函数主要是注册所有的编解码器.复用/解复用组件等. /* * Initialize li ...

  4. fastcgi代理

    一.fastcgi代理 1.示意图 2.fastcgi 代理配置语法 a.设置PHP服务代理地址 Syntax: fastcgi_pass address; Default: — Context: l ...

  5. android Api操作SQLite数据库的示例代码

    import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...

  6. python之scrapy爬取某集团招聘信息以及招聘详情

    1.定义爬取的字段items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See do ...

  7. jdk与jre与jdk都是干什么的有什么区别和jvm详解:

    1.0,jdk与jre和jvm的区别: JDK(Java Development Kit):指的是Java开发工具集.JDK是整个Java的核心,包括了Java基础类库.Java运行环境(JRE)和J ...

  8. 一百二十六:CMS系统之轮播图管理页面布局和添加轮播图的模态对话框制作

    视图 @bp.route('/banners/')@login_required@permission_required(CMSPersmission.POSTER)def banners(): re ...

  9. openstack部署neutron

    controller 1.创建数据库并设置权限 mysql -u root -p0330 CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutro ...

  10. Linux md5sum 命令

    Linux md5sum 命令 通过 Linux 的 md5sum 命令,可以对指定的文件,计算出唯一的一个MD5值(128bit). 通过比较文件前后的MD5值,可以判断文件是否发生变化(是否被修改 ...