Redis如何批量导入数据
Redis批量导入数据的示例:
1.准备一个redis protocol的文件,通过java程序来输出的,代码如下:
<<RedisBatchTest>>publicclassRedisBatchTest{
publicstaticvoidmain(String[]args){
StringoutputFile="d:\\temp\\redis_input.txt";
RedisBatchTesttest=newRedisBatchTest();
test.generateFile(outputFile);
}
/**
*格式化成输入字符串
*
*@paramargs
*@return
*/
privateStringgetString(Stringkey,Stringvalue){
StringBuildersb=newStringBuilder();
sb.append("*3").append("\r\n");
sb.append("$3").append("\r\n");
sb.append("SET\r\n");
sb.append("$").append(key.getBytes().length).append("\r\n");
sb.append(key).append("\r\n");
sb.append("$").append(value.getBytes().length).append("\r\n");
sb.append(value).append("\r\n");
returnsb.toString();
}
publicvoidgenerateFile(Stringfile){
BufferedWriterw=null;
Stringkey=null;
Stringvalue=null;
StringBuildersb=newStringBuilder();
try{
w=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(file),"utf-8"));
for(inti=1;i<=380;i++){
key="test_batch_"+i;
value="v_"+i+"注册即送水电费ServiceTest";//这是key对应的value
sb.append(this.getString(key,value));
if(i%10==0){
w.write(sb.toString());
w.flush();
sb.delete(0,sb.length());
System.out.println("Currentwrite:"+i);
}
}
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
w.flush();
w.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
2.执行java代码后,会在d:\\temp目录下生成一个文本文件,将这个文件上传到要执行的机器上。
3.再通过终端控制台执行以下命令将文件内容批量导入即可。
catinput/redis_input.txt|bin/redis-cli-p6370-ayourpasswd–pipe
版权声明
本文仅代表作者观点,不代表米安网络立场。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。