一步完成 MySQL 向 Redis 迁移

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一步完成 MySQL 向 Redis 迁移相关的知识,希望对你有一定的参考价值。

参考国外大牛的方法,http://www.oschina.net/translate/mysql-to-redis-in-one-step

实验成功,以下是操作方法:

mysql表结构数据

[test]> select * from hechunyang;
+----+--------+---------+
| id | myname | mymoney |
+----+--------+---------+
|  1 | aa     |    1000 |
|  2 | bb     |    2000 |
+----+--------+---------+
2 rows in set (0.00 sec)


编辑迁移SQL脚本

cat mysql_to_redis.sql
SELECT CONCAT( 
  "*4\r\n", 
  ‘$‘, LENGTH(redis_cmd), ‘\r\n‘, 
  redis_cmd, ‘\r\n‘, 
  ‘$‘, LENGTH(redis_key), ‘\r\n‘, 
  redis_key, ‘\r\n‘, 
  ‘$‘, LENGTH(hkey), ‘\r\n‘, 
  hkey, ‘\r\n‘, 
  ‘$‘, LENGTH(hval), ‘\r\n‘, 
  hval, ‘\r‘ 

FROM ( 
  SELECT 
  ‘HSET‘ AS redis_cmd, 
  ‘keyname‘ AS redis_key, 
  myname AS hkey, 
  mymoney AS hval 
  FROM hechunyang 
) AS t;


一步完成 MySQL 向 Redis 迁移

mysql test --skip-column-names --raw < mysql_to_redis.sql | redis-cli --pipe
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 2


Redis查看数据
127.0.0.1:6379> keys *
1) "keyname"
127.0.0.1:6379> hkeys keyname
1) "aa"
2) "bb"
127.0.0.1:6379> hget keyname aa
"1000"
127.0.0.1:6379> hget keyname bb
"2000"


本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处http://hcymysql.blog.51cto.com/5223301/1749526

以上是关于一步完成 MySQL 向 Redis 迁移的主要内容,如果未能解决你的问题,请参考以下文章

如何完成Redis数据迁移?

kettle从oracle向mysql迁移大数据量时报错,求教

分布式缓存服务(Redis)7天实战营~Day5实践作业完成步骤

MySQL数据平滑迁移方案思考

redis cluster异地数据迁移,扩容,缩容

从 mysql 迁移到 oracle 命中 ora-01400