如何高效地向Redis 6插入亿级别的数据

如何高效地向Redis插入亿级别的数据

背景

上一条记录;80G的存储;10几个文件,如何快速导入是一个大问题,也是一个很棘手的问题;如下将给出几条方案仅供参考

不可用的方案

  • 客户端:采用 springboot + RedisTemplate + pipeline 实现的文件导入,7000万条数据,导入Redis 1个小时;不可用
  • lua脚本导入:操作复杂;需要安装各种插件,

可用方案:利用管道插入

原始数据(aaa.txt )如下:

md 复制代码
12_22702684-d619-44fc-9af1-bba844fd1843.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
2_24067aae-995c-4f23-b47e-4ad2f4f04d44.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
4_248c79ed-5c74-4a2e-848c-38dd1491bf23.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
3_26dc1319-8047-4e31-a21d-5d433965e75a.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
1_48909acd-7785-4978-a4ae-8eb2038880d2.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
9_4b2a1fc2-c3e3-4dad-815e-10a188215a64.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
6_74509fb5-e3a7-4736-acd6-15e96b30e8e3.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
5_7719adcd-8a6c-45bb-baa7-d86a801b3119.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
14_800df990-42f1-401e-ab15-07def94c2469.jpg,/RA0/ssda/2018_05/16//99f86c4e-d34c-47fe-847a-41f402a2ac52/eda4c596-af33-4bf3-a647-a8a061252802/3c78913f-87e5-4d41-a1b7-932cbd6f62c5
......
  • 文件格式转换脚本: cat aaa.txt | awk -F "," '{print "set " $1" "$2;}' > ccc.out

    转换后的数据 set key value

md 复制代码
set 62_14a61b5c-13e3-4704-96d6-ce7720ca11e6.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 63_041cea0e-044f-4eb0-824a-33e6c475aa35.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 64_75b79643-8a22-4bdb-861c-c72370cdaf16.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 65_1816e238-bda0-4d8f-a27f-5ea37a972478.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 66_ca0b83a7-1b9d-48f6-aabb-729ddea656a5.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 67_1f403291-fc70-4ac0-a733-03fb43790501.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 68_06c30d40-03c7-47c4-b9b2-632f1be693c5.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 69_d6d3706f-98db-44b5-a3c0-13e1c6e59c33.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 70_4c76bb82-a023-494b-ba2b-4f228629f3f3.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 71_451e9c32-9838-460b-9c8d-fa48435bb8db.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 72_5028821c-fb02-42cc-a5f5-f6a483d99c38.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 73_6d793e5e-e58d-4f11-8db2-f21753cdf3d1.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 74_aaf20251-acc9-47c3-9dda-e8e3e81c3b8f.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 75_7b7883a3-f9e9-4f5b-8c6e-d1ba3f25d699.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 76_346e7d7a-28a2-4d35-9795-48adf9cbf024.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 77_afe1a60b-89b7-4e89-9f17-9f2979c4ffbc.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 78_f577d8cd-555e-4ccb-ab69-e8a42bc6b444.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 79_f089e3b3-ebf2-4053-8b0f-fb7f230e3f3d.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 80_61bb28b4-349c-49be-ab0d-3428f0d310a9.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 81_bdd783e8-85a1-48f3-8f20-21188109dd9f.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 82_9606c81c-3475-4712-8c15-3c2252f12b1c.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 83_1fe2cd45-f5b0-43c8-8021-ebff4997ae79.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
set 84_4c461e10-243b-4a57-9b7f-0fd0c31e2e2f.jpg /R10/ssda/2020_10/19//1991bf81-9732-4fc0-b276-0056377aa7e3/ggokflfeiggmejo/pgdkanfmccceeeo
......
  • 导入redis 执行脚本: 进入 redis目录 /home/redis-6.2.8

    time cat /root/data/ccc.out | redis-cli -h 127.0.0.1 -n 14 -a "Sxxc@2024" --pipe

其他命令:

  • 如果你需要查看所有数据库的键的数量,可以使用INFO命令,并查看keys相关的信息。

redis-cli -a "密码" info keyspace # 这将输出所有数据库的键的数量。

  • 指定数据库,数据条数:-n 后面是数据条数

redis-cli -a "密码" -n 1 dbsize #。不带-n,这个命令返回当前数据库的键的数量。否则指定数据库的数量

切换数据库 select 0-15

  • 统计请求总耗时:

curl -w "Total time: %{time_total} seconds\n" -X GET http://127.0.0.1:18081/file/getFilePath?fileName=28569fe62323443fb77fdc5b85a1ece0.jpg

参考:

  1. 如何高效地向Redis插入大量的数据: https://www.cnblogs.com/ivictor/p/5446503.html
  2. 如何高效的向Redis中插入大量数据:https://blog.csdn.net/qq_26502245/article/details/108510822
相关推荐
行走的山峰13 分钟前
etcd三节点,其中一个坏掉了的恢复办法
数据库·etcd
ImomoTo3 小时前
HarmonyOS学习(十三)——数据管理(二) 关系型数据库
数据库·学习·harmonyos·arkts·鸿蒙
机器视觉知识推荐、就业指导6 小时前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
jnrjian6 小时前
export rman 备份会占用buff/cache 导致内存压力
数据库·oracle
isNotNullX7 小时前
一文解读OLAP的工具和应用软件
大数据·数据库·etl
小诸葛的博客8 小时前
pg入门1——使用容器启动一个pg
数据库
大熊程序猿9 小时前
python 读取excel数据存储到mysql
数据库·python·mysql
落落落sss9 小时前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle
jnrjian9 小时前
Oracle 启动动态采样 自适应执行计划
数据库·oracle