迁移键:

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. [vbs]脚本启动

    Set ws = CreateObject("Wscript.Shell") ws.run "cmd.exe /c start tool.exe config_tence ...

  2. MAC ADDRESS

    可以使用手机Wifi或蓝牙的MAC地址作为设备标识,但是并不推荐这么做,原因有以下两点:硬件限制:并不是所有的设备都有Wifi和蓝牙硬件,硬件不存在自然也就得不到这一信息.获取的限制:如果Wifi没有 ...

  3. mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci的关系

    mysql中的utf8mb4.utf8mb4_unicode_ci.utf8mb4_general_ci的关系 一.总结 一句话总结: utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节 ...

  4. dubbo备忘

    http://start.dubbo.io/ https://github.com/dubbo/dubbo-samples https://www.aliyun.com/product/edas ht ...

  5. HTML属性操作

    属性名 属性值 相关操作:读与取 一.属性读操作:元素.属性,其实在就是找到等号右边的值 代码为: <!DOCTYPE html> <html lang="en" ...

  6. HttpURLConnection提交数据

    使用GET方式向服务器端提交数据 * 原理:把要提交的数据组拼到Url后面 * http协议规定数据长度不超过4kb,IE浏览器超过1kb就会丢弃掉后面的数据 * 缺点:数据不安全 * 优点:代码书写 ...

  7. 转 MySQL: Starting MySQL….. ERROR! The server quit without updating PID file解决办法

    http://blog.sina.com.cn/s/blog_637e04c9010117ri.html 1 问题 [root@localhost mysql]# /etc/rc.d/init.d/m ...

  8. 转 CentOS7使用firewalld打开关闭防火墙与端口

    http://blog.csdn.net/huxu981598436/article/details/54864260 开启端口命令 输入firewall-cmd --query-port=6379/ ...

  9. openstack核心组件--cinder存储服务(6)

    一.cinder 介绍:   理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系 ...

  10. TypeError: '<' not supported between instances of 'str' and 'int'

    <不支持str实例和int实例之间的对比 birth是str类型 2000是int类型 所以无法对比,报错 birth = input('birth: ') if birth < 2000 ...