如何高效地向Redis 6插入亿级别的数据
如何高效地向Redis插入亿级别的数据
- 背景
- 不可用的方案
- 可用方案:利用管道插入
- 其他命令:
- 参考:
背景
上一条记录;80G的存储;10几个文件,如何快速导入是一个大问题,也是一个很棘手的问题;如下将给出几条方案仅供参考
不可用的方案
- 客户端:采用 springboot + RedisTemplate + pipeline 实现的文件导入,7000万条数据,导入Redis 1个小时;不可用
- lua脚本导入:操作复杂;需要安装各种插件,
可用方案:利用管道插入
原始数据(aaa.txt )如下:
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
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
相关文章:
如何高效地向Redis 6插入亿级别的数据
如何高效地向Redis插入亿级别的数据 背景不可用的方案可用方案:利用管道插入其他命令:参考: 背景 上一条记录;80G的存储;10几个文件,如何快速导入是一个大问题,也是一个很棘手的问题;如下将给出…...

中国历年肥料进口数量统计报告
数据来源于国家统计局,为1991年到2021年我国每年肥料进口数量统计。 2021年,我国进口肥料909万吨,比上年减少151万吨。 数据统计单位为:万吨 数据说明: 数据来源于国家统计局,为海关进出口统计数 我国肥料…...

即时通讯视频会议平台,WorkPlus本地化部署解决方案
随着现代科技的快速发展,传统的会议方式已经不再满足企业和组织的需求。即时通讯视频会议以其便利性和高效性,成为了现代企业沟通和协作的重要工具。通过即时通讯视频会议,企业可以实现无时差的交流和远程协作,增强团队合作和提高…...

Java的数据库编程-----JDBC
目录 一.JDBC概念&使用条件: 二.mysql-connector驱动包的下载与导入: 三.JDBC编程: 使用JDBC编程的主要五个步骤: 完整流程1(更新update): 完整流程2(查询query): 一.JDB…...

如何获取SSL证书,消除网站不安全警告
获取SSL证书通常涉及以下几个步骤: 选择证书颁发机构(CA): 你需要从受信任的SSL证书颁发机构中选择一个,比如DigiCert、GlobalSign、JoySSL等。部分云服务商如阿里云、腾讯云也提供免费或付费的SSL证书服务。 生成证…...

Unity动画系统介绍
Unity动画系统介绍 Animator组件: 这是Unity中用于控制动画状态的组件,它与Animator Controller一起工作,可以基于游戏逻辑来切换不同的动画状态。 Animator Controller: 这是一个用于管理动画状态机的组件,它允许…...

Three.js-实现加载图片并旋转
1.实现效果 2. 实现步骤 2.1创建场景 const scene new THREE.Scene(); 2.2添加相机 说明: fov(视场角):视场角决定了相机的视野范围,即相机可以看到的角度范围。较大的视场角表示更广阔的视野,但可能…...
ACM实训第25天
第四套 第一道(修改) #include<stdio.h> #include<string.h> int cnt[10]; void count_digits(int n,int* cnt){for(int i1;i<n;i){int numi;while(num){cnt[num%10];num/10;}} } int main(){int t;scanf("%d\n",&t);whi…...

GraphQL(2):使用express和GraphQL编写helloworld
1 安装express、graphql以及express-graphql 在项目的目录下运行一下命令。 npm init -y npm install express graphql express-graphql -S 2 新建helloworld.js 代码如下: const express require(express); const {buildSchema} require(graphql); const grap…...
Vue中的计算属性和侦听器:提升响应式编程的艺术
引言 Vue.js是一个用于构建用户界面的渐进式框架,它的核心特性之一是响应式编程。Vue通过数据绑定和响应式系统,使得开发者能够以声明式的方式处理数据变化。在Vue中,计算属性(Computed Properties)和侦听器ÿ…...

JavaScript倍速播放视频
F12打开开发者工具,打开控制台,输入这行代码,视频即可加速播放, 可以调整倍速(2,4,8,16) document. getElementsByTagName("video")[0]. playbackRate16...
ER图介绍
在数据库设计和建模中,实体-关系图(Entity-Relationship Diagram,简称ER图)是一个至关重要的工具。ER图通过图形化的方式描述了现实世界中的实体(Entity)及其之间的关系(Relationship࿰…...
Oracle通过datax迁移线上表到历史库
历史数据迁移 线上库数据增长迅速,需要定期清理历史数据,因为异地灾备,但是带宽很小,不能使用数据泵直接往历史库导数,会导致本地机房到灾备机房的带宽被占满,调研过flink、golden gate、datax,…...

java基础-深拷贝和浅拷贝
java中有一个概念叫深拷贝和浅拷贝,那这两个是什么意思呢?其实你可以对比一下c中的传值和传引用的问题。 深拷贝 即两个相同的对象地址不同,比如对象A通过拷贝出来对象B,在对B对象进行操作时不会影响到A对象的内容。 浅拷贝 和…...

Java数组操作
数组拓展 1.1 数组拷贝 需求:定义一个方法arraycopy, 从指定源数组中从指定的位置开始复制指定数量的元素到目标数组的指定位置。 1.2. 排序操作 需求:完成对int[] arr new int[]{2,9,6,7,4,1}数组元素的升序排序操作. 1.2.1.冒泡排序 对未排序的各元素…...

C++vector及其实现
第一个参数是类型(可以是自定义也可以是内置类型) 相当于生成一个该类型的数组 allocator是空间配置器 遍历 1.下标遍历 2.迭代器遍历 3.范围for 对象访问 有名对象访问 匿名对象访问 隐式类型转换 成员函数 sort 使用sort需要包含头文件algorithm eg. sort的使用非…...

路由策略实验1
先把地址全部配通 对R1 对R2 对R4 对R3 对R5 对R6 对R7 然后起路由协议 对R1 对R2 对R3 对R4 对R5 对R6 对R7...

含情脉脉的进程
冯诺依曼体系结构 一个计算机在工作的时候是怎样的呢? 我们所认识的计算机都是由一个个的硬件组件组成: 输入设备:键盘、鼠标、摄像头、话筒、磁盘、网卡 中央处理器(CPU):运算器、控制器 输出设备&#x…...

重复文件怎么查找并清理?电脑重复文件清理工具分享:4个
在日常使用电脑的过程中,我们不可避免地会遇到各种重复文件的问题。这些重复文件不仅占据了宝贵的存储空间,还可能导致系统性能下降,甚至引发一些不必要的问题。因此,如何有效地查找并清理这些重复文件成为了许多用户关注的焦点。…...

Java中连接Mongodb进行操作
文章目录 1.引入Java驱动依赖2.快速开始2.1 先在monsh连接建立collection2.2 java中快速开始2.3 Insert a Document2.4 Update a Document2.5 Find a Document2.6 Delete a Document 1.引入Java驱动依赖 注意:启动服务的时候需要加ip绑定 需要引入依赖 <dependen…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...