• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Redis > 从MySQL到Redis的简单数据库迁移方法

从MySQL到Redis的简单数据库迁移方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了redis mysql,mysql mongodb redis,redis和mysql的区别,redis mysql同步,mysql udf redis等相关知识,希望本文的分享对您有所帮助

 从mysql搬一个大表到redis中,你会发现在提取、转换或是载入一行数据时,速度慢的让你难以忍受。这里我就要告诉一个让你解脱的小技巧。使用“管道输出”的方式把mysql命令行产生的内容直接传递给redis-cli,以绕过“中间件”的方式使两者在进行数据操作时达到最佳速度。

一个约八百万行数据的mysql表,原本导入到redis中需要90分钟,使用这个方法后,只需要两分钟。不管你信不信,反正我是信了。

Mysql到Redis的数据协议

redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令设计的。这第一步就是把Mysql查询的内容格式化成redis-cli可用的数据格式。here we go!


我的统计表:
 

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)
);
</div>

准备在每行数据中执行的redis命令如下:
 
HSET events_all_time [action] [count]
按照以上redis命令规则,创建一个events_to_redis.sql文件,内容是用来生成redis数据协议格式的SQL:
 
-- events_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,
 'events_all_time' AS redis_key,
 action AS hkey,
 count AS hval
 FROM events_all_time
) AS t
</div>

ok, 用下面的命令执行:
 

mysql stats_db --skip-column-names --raw < events_to_redis.sql | redis-cli --pipe
</div>

很重要的mysql参数说明:

  • --raw: 使mysql不转换字段值中的换行符。
  • --skip-column-names: 使mysql输出的每行中不包含列名。
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • redis+mysql+quartz 一种红包发送功能的实现
  • 从MySQL到Redis的简单数据库迁移方法

相关文章

  • 2017-05-11Redis整合Spring结合使用缓存实例
  • 2017-07-23redis主动向页面push数据
  • 2017-05-11Centos7下Redis3.2.8最新版本安装教程
  • 2017-05-11Windows下Redis的安装使用教程
  • 2017-05-11Redis教程(九):主从复制配置实例
  • 2017-05-11Redis 中spark参数executor-cores引起的异常解决办法
  • 2017-05-11Redis中主键失效的原理及实现机制剖析
  • 2017-05-11详解用Redis实现Session功能
  • 2017-05-11Redis Stat的安装指南
  • 2017-07-22EasyCMS在幼儿园视频直播项目实战中以redis操作池的方式应对高并发的redis操作问题

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 用Redis实现微博关注关系
    • Redis教程(八):事务详解
    • redis主动向页面push数据
    • Redis源码剖析和注释(二十二)---Redis复制(replicate)源码详细解析
    • Redis Stat的安装指南
    • 一起raid数据恢复及回迁成功的案例
    • Redis有序集合类型的常用命令小结
    • Redis教程(二):String数据类型
    • Redis服务器的启动过程分析
    • Redis主从实现读写分离

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有