怎样将mysql中的数据导入redis

这篇具有很好参考价值的文章主要介绍了怎样将mysql中的数据导入redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通过管道传输pipe将MySQL数据批量导入Redis

自Redis 2.6以上版本起,Redis支持快速大批量导入数据,即官网的Redis Mass Insertion,即Pipe传输,

通过将要导入的命令转换为Resp格式,然后通过MySQL的concat()来整理出最终导入的命令集合,以达到快速导入的目的。

1. 根据需求设计好Redis的hash结构,关键是Key的设计

Redis其实就是内存数据库,而其中最常用的就是hash结构,key-value,查询时需要使用到key,所以key的设计决定了查询的效率,

我们以虚拟机的stress库下面的order为例

批量设值

HMSET myhashfield1 “Hello” field2 “World”

紫色框引用了select出来的数据,然后转换成符合RESP协议格式:

第一行的 *10 : *表示数组,10表示数组元素个数*(可以看下面的SQL查询语句标红的字段有10个,所以为10), 是规定分隔符

第二行的’$‘,LENGTH(redis_cmd),’ ‘,redis_cmd,’ ',
$表示长字符串,LENGTH(redis_cmd)表示字符串长度,

redis_cmd字符串变量,

还是规定字符串(window的redis是 )

测试表结构:

Create Table

CREATE TABLE `order` (
  `orderid` varchar(38) DEFAULT NULL,
  `ordertime` datetime DEFAULT NULL,
  `ordermoney` decimal(20,0) DEFAULT NULL,
  `orderstatus` char(1) DEFAULT NULL,
  `version` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

查询SQL语句:

SELECT CONCAT(
 '*10
',
   '$', LENGTH(redis_cmd), '
', redis_cmd, '
',
   '$', LENGTH(redis_key), '
', redis_key, '
',
   '$', LENGTH(hkey1),'
',hkey1,'
','$',LENGTH(hval1),'
',hval1,'
',
   '$', LENGTH(hkey2),'
',hkey2,'
','$',LENGTH(hval2),'
',hval2,'
',
   '$', LENGTH(hkey3),'
',hkey3,'
','$',LENGTH(hval3),'
',hval3,'
',
   '$', LENGTH(hkey4),'
',hkey4,'
','$',LENGTH(hval4),'
',hval4,'
'
)
FROM (
 SELECT
 'HSET' AS redis_cmd,
 CONCAT('order:info:',orderid) AS redis_key,
 'ordertime' AS hkey1, ordertime AS hval1,
 'ordermoney' AS hkey2, ordermoney AS hval2,
 'orderstatus' AS hkey3, orderstatus AS hval3,
 'version' AS hkey4, `version` AS hval4
 FROM `order`
) AS t

将以上查询SQL查询语句在LINUX上存储order.sql文件

执行指令:

mysql -utest -ptest stress --default-character-set=utf8–skip-column-names --raw < order.sql | redis-cli --pipe

-utest -ptest stress 代表连接test用户 密码为test 数据库为stress,并登录数据库

–raw < order.sql 表示将order.sql的sql语句内容粘贴到mysql里执行(以上指令代表已登录MYSQL)

redis-cli --pipe 表示使用redis pipe管道把数据导入到redis中

如果有密码了,还得加上,-h 192.168.177.138 -a 123456

查看:文章来源地址https://www.toymoban.com/news/detail-455404.html

到了这里,关于怎样将mysql中的数据导入redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)

    Hive介绍: Hive是建立在Hadoop之上的数据仓库基础架构,它提供了类似于SQL的语言(HQL),可以对大规模数据集进行查询和分析。通过Hive,我们可以在分布式存储系统中进行复杂的数据处理和分析。 Sqoop简介: Sqoop是一个用于在Apache Hadoop和关系型数据库之间传输数据的工具。

    2024年04月13日
    浏览(41)
  • sqoop把hive中的数据导入mysql

    记录简单案例 首先开启集群: 在hive中建库建表,并插入一条数据来为自己做实验: 验证一下,是否插入成功: 在mysql中建表,并且要与hive中传过来的数据字段相对应: 建表后为空: 用sqoop将hive中的数据传到mysql中: export 导出数据, –connect 连接数据库的参数, –userna

    2024年02月07日
    浏览(79)
  • MySQL 和 Redis 如何保证数据一致性,通过MySQL的binlog实现

    1、简介         MySQL 和 Redis 如何保证数据一致性,目前大多讨论的是先更新Redis后更新MySQL,还是先更新MySQL 后更新Redis,这两种方式在实际的应用场景中都不能确保数据的完全一致性,在某些情况下会出现问题,本文介绍使用 Canal 工具,通过将自己伪装成MySQL的从节点,读

    2024年02月02日
    浏览(55)
  • springboot+redis+mysql+quartz-通过Java操作redis的KEYS*命令获取缓存数据定时更新数据库

    代码讲解: 3-点赞功能-定时持久化到数据库(pipeline+lua)-完善过程2_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1w14y1o7BV 本文章代码: blogLike_schedule/like03 · xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like03 数据

    2024年02月15日
    浏览(47)
  • MySQL中的业务数据该如何正确导入到Hive中 - Sqoop

    水善利万物而不争,处众人之所恶,故几于道💦   1. 使用Sqoop脚本将MySQL中的数据迁移到HDFS   2. 在Hive中建立与之对应的表   3. 将HDFS中的数据load到 Hive 数仓的ODS层的表中 1 . 使用Sqoop 将 MySQL中的数据导入到HDFS上 使用示例: mysql_to_hdfs.sh all 2021-02-01 导出的数据用lzo压缩,并

    2024年02月11日
    浏览(46)
  • 如何使用python实现简单爬取网页数据并导入MySQL中的数据库

    前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 PyMySQL 库与 MySQL 进行交互。 以下是一个简单的示例: 1.  安装所需库: ``` ``` 2.  导入所需库: ``` ``` 3.  建立数据库连接:

    2024年02月04日
    浏览(47)
  • 如何通过Python将JSON格式文件导入redis?

    摘要: 如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务。 本文分享自华为云社区《Python将JSON格式文件导入 redis,多种方法》,作者: 梦想橡皮擦 。 在导入前需要先确定你已经安装 Redis,并且可以启动相关服务。 windows 上启动 redis 的命令是 redis-serve

    2024年02月06日
    浏览(38)
  • 使用Logstash同步mysql数据到Elasticsearch(亲自踩坑)_将mysql中的数据导入es搜索引擎利用logstash(1)

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新大数据全套学习资料》,

    2024年04月28日
    浏览(49)
  • springboot+redis+mysql+quartz-通过Java操作jedis使用pipeline获取缓存数据定时更新数据库

    代码讲解:6-点赞功能-定时持久化到数据库-pipeline+lua-优化pipeline_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1yP411C7dr 代码: blogLike_schedule/like06 · xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like06 数据库表的

    2024年02月16日
    浏览(43)
  • 通过 DVT 和 dbt 测试监控Airbyte数据管道

    为数据复制或数据迁移构建 ELT 数据管道的一个重要部分是能够在出现错误时进行监视并获得通知。如果您不知道错误,您的数据将包含不一致之处,并且您的报告将不准确。由于使用的工具数量众多,大多数管道的复杂性使得设置监视和警报系统更具挑战性。 在本文中,我

    2023年04月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包