内容简介:有时候,我们需要给redis库中插入大量的数据,如做性能测试前的准备数据。遇到这种情况时,偶尔可能也会懵逼一下,这里就给大家介绍一个批量导入数据的方法。先准备一个redis protocol的文件(redis protocol可以参考这里:https://redis.io/topics/protocol),这里是用java程序来输出的,java代码如下:<<RedisBatchTest>>
有时候,我们需要给 redis 库中插入大量的数据,如做性能测试前的准备数据。遇到这种情况时,偶尔可能也会懵逼一下,这里就给大家介绍一个批量导入数据的方法。
先准备一个redis protocol的文件(redis protocol可以参考这里:https://redis.io/topics/protocol),这里是用 java 程序来输出的,java代码如下:
<
public class RedisBatchTest {
public static void main(String[] args) {
String outputFile = "d:\\temp\\redis_input.txt";
RedisBatchTest test = new RedisBatchTest();
test.generateFile(outputFile);
}
/**
* 格式化成输入字符串
*
* @param args
* @return
*/
private String getString(String key, String value) {
StringBuilder sb = new StringBuilder();
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");
return sb.toString();
}
public void generateFile(String file) {
BufferedWriter w = null;
String key = null;
String value = null;
StringBuilder sb = new StringBuilder();
try {
w = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"));
for (int i = 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("Current write: " + i);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
w.flush();
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
执行以上代码,就会在d:\\temp目录下生成一个文本文件,格式如下:
以上就是redis protocol格式的文件了,请上传到要执行的机器上。然后使用以下命令来执行它:
cat input/redis_input.txt | bin/redis-cli -p 6370 -a yourpasswd –pipe
如果执行成功的话,你就可以看到如下信息了:
从以上输出可以看出,380条数全部插入到redis服务器上啦。
更详细的信息,可以参考: https://redis.io/topics/mass-insert
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Perl语言入门 第六版(中文版)
Randal L.Schwartz、brian d foy、Tom Phoenix / 盛春 / 东南大学出版社 / 2012-3 / 62.00元
《Perl语言入门(第6版)(中文版)》根据作者施瓦茨、福瓦、菲尼克斯从1991年开始的教学经验积累汇聚而成,多年来十分畅销。此次第六版涵盖了最新的Perl5.14版本的变化。《Perl语言入门(第6版)(中文版)》每章都包含若干习题,帮助你巩固消化刚学到的知识。也许其他书籍只是想着灌输Perl编程的条条框框,但《Perl语言入门(第6版)(中文版)》不同,我们希望把你培养成一名真正的Perl程序......一起来看看 《Perl语言入门 第六版(中文版)》 这本书的介绍吧!