一步完成 MySQL 向 Redis 迁移
来源:互联网 发布:自己做相册的软件 编辑:程序博客网 时间:2024/04/29 15:24
从mysql搬一个大表到redis中,你会发现在提取、转换或是载入一行数据时,速度慢的让你难以忍受。这里我就要告诉一个让你解脱的小技巧。使用“管道输出”的方式把mysql命令行产生的内容直接传递给redis-cli,以绕过“中间件”的方式使两者在进行数据操作时达到最佳速度。
一个约八百万行数据的mysql表,原本导入到redis中需要90分钟,使用这个方法后,只需要两分钟。不管你信不信,反正我是信了。
其它翻译版本(1)
zzxworld
翻译于 昨天(14:36)
1人顶
顶 翻译的不错哦!
Mysql到Redis的数据协议
redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令设计的。这第一步就是把Mysql查询的内容格式化成redis-cli可用的数据格式。here we go!
zzxworld
翻译于 昨天(14:57)
0人顶
顶 翻译的不错哦!
我的统计表:
1
CREATE
TABLE
events_all_time (
2
id
int
(11) unsigned
NOT
NULL
AUTO_INCREMENT,
3
action
varchar
(255)
NOT
NULL
,
4
count
int
(11)
NOT
NULL
DEFAULT
0,
5
PRIMARY
KEY
(id),
6
UNIQUE
KEY
uniq_action (
action
)
7
);
1
HSET events_all_time [action] [count]
01
-- events_to_redis.sql
02
03
SELECT
CONCAT(
04
"*4\r\n"
,
05
'$'
, LENGTH(redis_cmd),
'\r\n'
,
06
redis_cmd,
'\r\n'
,
07
'$'
, LENGTH(redis_key),
'\r\n'
,
08
redis_key,
'\r\n'
,
09
'$'
, LENGTH(hkey),
'\r\n'
,
10
hkey,
'\r\n'
,
11
'$'
, LENGTH(hval),
'\r\n'
,
12
hval,
'\r'
13
)
14
FROM
(
15
SELECT
16
'HSET'
as
redis_cmd,
17
'events_all_time'
AS
redis_key,
18
action
AS
hkey,
19
count
AS
hval
20
FROM
events_all_time
21
)
AS
t
1
mysql stats_db --skip-column-names --raw < events_to_redis.sql | redis-cli --pipe
--raw: 使mysql不转换字段值中的换行符。
--skip-column-names: 使mysql输出的每行中不包含列名。
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- 一步完成 MySQL 向 Redis 迁移
- MySQL 向 Redis 高效迁移
- mysql向Oracle迁移
- 浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移
- 浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移
- 浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移
- oracle 向mysql数据迁移
- oracle 向mysql数据迁移
- oracle 向mysql数据迁移
- mysql 数据 迁移到redis
- GCC4.8发布,完成向C++的迁移
- MYSQL数据库从Windows向Linux迁移
- MySQL向Hive/HBase的迁移工具
- MySQL向Hive/HBase的迁移工具
- MySQL向Hive/HBase的迁移工具
- /etc/ssh/sshd_config 详细注释(转载以备需要)
- Android自动化测试之Monkeyrunner从零开始
- C#抽象类可以有构造方法吗,若是有如何实现及调用?
- MPEG2 TS小结
- C# VS2008 产生dataView
- 一步完成 MySQL 向 Redis 迁移
- sphinx 安装使用
- 对JS函数的理解
- 有a、b两个变量,如何在不添加第三个变量的情况下,交换a、b变量的值?
- 获取字符串中img标签中src的数组列表
- sql之truncate 、delete与drop区别
- C语言之memchr函数
- makefile的选项LDFLAGS
- Linux ftp命令的使用方法