如何高效地向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
参考:
- 如何高效地向Redis插入大量的数据: https://www.cnblogs.com/ivictor/p/5446503.html
- 如何高效的向Redis中插入大量数据:https://blog.csdn.net/qq_26502245/article/details/108510822