Redis迁移键
迁移键:
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迁移键的更多相关文章
- 深入理解Redis主键失效原理及实现机制
http://blog.jobbole.com/71095/ 对于缓存失效,不同的缓存有不同的处理机制,可以说是大同中有小异,作者通过对Redis 文档与相关源码的仔细研读,为大家详细剖析了 Redi ...
- redis对键进行的相关操作
redis对键操作的相关命令以及如何在python使用这些命令 redis对键操作的命令: 命令 语法 概述 返回值 Redis DEL 命令 del key [key ...] 该命令用于在 key ...
- redis中键空间通知
通过redis的键空间通知,当redis删除过期key的时候,及时更新mongodb数据库中user的状态 var Redis = require('ioredis'); var redis = ne ...
- redis主键失效机制
Memcached删除主键的方式与Redis有何异同 首先,Memcached 在删除失效主键时也是采用的消极方法,即 Memcached 内部也不会监视主键是否失效,而是在通过 Get 访问主键时才 ...
- 深入理解Redis主键失效原理及实现机制(转)
原文:深入理解Redis主键失效原理及实现机制 作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Redis 也不例外.在 Redis 提供的诸多命令中,EXPIRE.EXPIREA ...
- redis学习笔记——Redis过期键的删除策略
Redis过期键的删除策略 对于过期键一般有三种删除策略 定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作: 惰性删除:放任键过期 ...
- Redis主键失效 - 原理及实现机制
[数据记录过期源码][http://blog.csdn.net/yuanrxdu/article/details/21233047] [http://blog.jobbole.com/71095/] ...
- redis空间键详解
前言 redis的空间键通知是在2.8.0版本以后加入的,客户端通过发布订阅的方式,订阅某个频道,接收通过某种方式影响redis中数据的事件. 目录: 1.空间键事件分类 2.如何启用redis的空间 ...
- Redis 过期键的设置、获取和删除过期时间
Redis 过期键的设置.获取和删除过期时间 转自http://blog.51cto.com/littledevil/1813956 设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内 ...
随机推荐
- Linux-ubuntu英文版输入法不能切换中文输入法问题解决办法
1:System Settings中点击Language Support 2. 3. 4. 5. 6. 7.注意不要勾选Only Show Current Language
- 【sed】进阶
sed的基本用法已能满足大多数需求,但当需要时,知道这些高级特效的存在及如何使用将提供莫大的帮助! 1. 多行命令 sed编辑器提供三个用于处理多行文本的特殊命令: N:将数据 ...
- FFmpeg之av_register_all()
1. av_register_all() 该函数位于 libavformat/allformats.c 中. 该函数主要是注册所有的编解码器.复用/解复用组件等. /* * Initialize li ...
- fastcgi代理
一.fastcgi代理 1.示意图 2.fastcgi 代理配置语法 a.设置PHP服务代理地址 Syntax: fastcgi_pass address; Default: — Context: l ...
- android Api操作SQLite数据库的示例代码
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...
- python之scrapy爬取某集团招聘信息以及招聘详情
1.定义爬取的字段items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See do ...
- jdk与jre与jdk都是干什么的有什么区别和jvm详解:
1.0,jdk与jre和jvm的区别: JDK(Java Development Kit):指的是Java开发工具集.JDK是整个Java的核心,包括了Java基础类库.Java运行环境(JRE)和J ...
- 一百二十六:CMS系统之轮播图管理页面布局和添加轮播图的模态对话框制作
视图 @bp.route('/banners/')@login_required@permission_required(CMSPersmission.POSTER)def banners(): re ...
- openstack部署neutron
controller 1.创建数据库并设置权限 mysql -u root -p0330 CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutro ...
- Linux md5sum 命令
Linux md5sum 命令 通过 Linux 的 md5sum 命令,可以对指定的文件,计算出唯一的一个MD5值(128bit). 通过比较文件前后的MD5值,可以判断文件是否发生变化(是否被修改 ...