MySQL快速迁移到Redis方法
本文主要给大家介绍MySQL快速迁移到Redis方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL快速迁移到Redis方法吧。
一个简单快速的将MySQL的数据迁移到Redis中并且以hash方式存储,数据的存储需要遵守redis的通讯协议(官方连接 http://redis.io/topics/mass-insert),
如:
*3 CR LF //三个字段
$3 CR LF //第一个字段 ‘set’ 有3个字节
SET CR LF //字段内容set
$4 CR LF //第二个字段key1有4个字节
key1 CR LF //字段二内容 mykey
$4 CR LF //第三个字段有4个字节
val1 CR LF //字段三内容 val1
结果:set key1 val1
案例如下:
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),
UNIQUE KEY uniq_action (ACTION)
);
##数据自己添加到表
Redis存储结构:
1、hset events_all_time ACTION COUNT ##这里设置的键值方面于数据库对应起来
2、编写变量保存到文件里abc.sql
SELECT CONCAT(
"*4\r\n", ###表示redis命令有4个字段包括命令和参数(表字段)
'$', 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' ###最后一行没有\n
)
FROM (
SELECT
'HSET' as redis_cmd,
'events_all_time' AS redis_key, ##这里用表名作为redis中的field名
action AS hkey, ##数据库字段
count AS hval
FROM events_all_time
) AS t
3、执行: /usr/local/mysql/bin/mysql -h292.168.1.195 -udlan -p log --skip-column-names --raw <abc.sql |redis-cli -h 192.168.1.130 --pipe
重要参数说明:
--raw: 使mysql不转换字段值中的换行符。
--skip-column-names: 使mysql输出的每行中不包含列名
看完以上关于MySQL快速迁移到Redis方法,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的数据库栏目的。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341