由于测试需要,把文件内容批量插入到redis指定key中。
mids.txt文件局部信息如下:
32350194015fbe810826304000083683
12350194015fbe810826304000011921
22350194015fbe810826304000049272
12350194015fbe810826304000011997
......................
以下为具体java实现代码:
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;
import java.io.File;
import java.io.IOException;
import java.util.List;
import static org.apache.commons.io.FileUtils.readLines;
/**
* 将指定文件内容批量写进redis指定key中
* @author by dujiajun
* @date 2020/1/27.
*/
public class InsertRedis {
public void insertRedis(String key,String filePath,String keyType) throws Exception{
//创建redis连接对象
Jedis jimdb = new Jedis("127.0.0.1",6379,1000);
//创建Pipeline对象
Pipeline pipeline =jimdb.pipelined();
//读取指定文件内容赋值给list
List<String> listLines= readLines(new File(filePath),"UTF-8");
int listLength= listLines.size();
//将文件信息存放至redis的set类型key中
if(keyType.trim().equalsIgnoreCase("set")){
for(int i=0;i<listLength;i++){
pipeline.sadd(key,listLines.get(i));
if(i%1000==0){
//每1000条提交一次
pipeline.sync();
}
}
}else if(keyType.trim().equalsIgnoreCase("list")){
//将文件信息存放至redis的list类型key中
for(int i=0;i<listLength;i++){
pipeline.lpush(key,listLines.get(i));
if(i%1000==0){
//每1000条提交一次
pipeline.sync();
}
}
}
try {
pipeline.close();
jimdb.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String [] args) throws Exception {
String filePath = "D:\\mids.txt";
String setKey = "smids";
String listKey = "lmids";
InsertRedis insertRedis = new InsertRedis();
insertRedis.insertRedis(setKey,filePath,"set");
insertRedis.insertRedis(listKey,filePath,"list");
}
}
执行完java程序后,使用redis客户端连接工具查看写入正常。
如觉得对你有帮助,请记得点个赞,感谢支持....
博客为博主原创,如转载请标明出处:https://blog.csdn.net/junior77/article/details/113247649