mysql 数据 迁移到redis

首先:
1、创建表:
MySQL数据表结构:


CREATE TABLE events_all_time (
 id int(11) unsigned NOT NULL AUTO_INCREMENT,
 action varchar(255) NOT NULL,
 count int(11) NOT NULL DEFAULT 0,
 PRIMARY KEY (id)
);

2、 Redis存储结构:
HSET events_all_time [action] [count]
下面是重点,能过下面SQL语句将MySQL输出直接变更成redis-cli可接收的格式:

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,
  'events_all_time' AS redis_key,
  action AS hkey,
  count AS hval
  FROM events_all_time
) AS t



格式说明如下:
*4 #表示有4个参数
$4 #表示“参数”有三个字节("HSET"字符串为4个字节)
hset #执行的命令
$8 # key有 8个字节
wolys101 #key对应的值
$6 #field对应的长度
passwd #field对应的值
$12 # value的长度
wolysopen111 #value的值
  # 一条语句结束
每行默认以 \r\n 结尾
同时在执行玩一行后,以 \r\n 代码一条语句结束

3、 然后用管道符重定向输出即可:

 cat 2.txt  | redis-cli --pipe

注意:第三部可能遇到问题,如果提示redis-cli不是命令。window 下需要配置redis环境变量 

参考连接:
redis pipe大数据量导入:  http://hjy2099.iteye.com/blog/2224770
 使用reids-cli --pipe导入redis protocol文件数据:  http://f.dataguru.cn/thread-197777-1-1.html


猜你喜欢

转载自blog.csdn.net/tanhoqi451/article/details/76273476