gpt4 book ai didi

java - 将大的 csv 文件加载到 redis

转载 作者:可可西里 更新时间:2023-11-01 11:13:02 27 4
gpt4 key购买 nike

我正在尝试在 redis 数据库中加载一个 csv 文件(这个文件有 2700 万行),但它抛出了一个异常 'redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException : 读取超时'

我的代码:

   Jedis jedis = new Jedis();

try {

BufferedReader in = new BufferedReader(new FileReader(fileName));

String line = in.readLine();
int i =0;
while (line != null) {
try{
String[] edgeDescription = line.split("\\s");
if (edgeDescription.length >=0) {
jedis.hset( String.valueOf(i) ,edgeDescription[0],edgeDescription[1]);
}
i++;
}
catch (OutOfMemoryError e)
{

e.getMessage();
}


line = in.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}

最佳答案

鉴于这组信息,很难回答这个问题。虽然我会尝试给你一些要点来检查:

  • 您在哪里声明要连接到哪个数据库?我没有看到任何主机/端口规范。在这种情况下,jedis 实例会尝试连接到 localhost:6379 吗?
  • 您的代码是否能够将一些数据写入 redis?
  • 如果是,您能否引入一个计数器来计算处理了多少行以及将多少行写入了数据库?连接超时后,redis 实例会发生什么情况?它是否仍在运行并且一切正常?
  • 您是否尝试过 redis-cli -h host -p port monitor 命令?

小提示:您的代码通常效率不高,您应该使用管道并以 1000 次左右的写入 block 的形式处理写入,这样会快得多。你考虑过这个吗?

关于java - 将大的 csv 文件加载到 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43940697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com