码上敲享录 > Redis教程(java) > Redis大量数据插入演示

Redis大量数据插入演示

章节目录下一章 2019-12-31已有1104人阅读 评论(0)

Redis大量数据插入

有時候Redis实例需要装载大量用户在短时间内产生的数据,数以百万计的keys需要被快速的创建称之为大量数据插入。从Redis 2.6开始redis-cli支持一种新的被称之为pipe mode的新模式用于执行大量数据插入工作,redis-cli pipe试着尽可能快的发送数据到服务器。

第一步、先通过代码生成命令集合文件data.txt,我存放的目录为/usr/local/java/redis/bin/data.txt,我文件中只有三个set命令创建三个key,其中第二个命令是错误的,看看到时执行的时候返回什么结果,我的文件内容为:

SET Key0 Value0

SET Key1Value1

SET Key2 Value2

第二步、在linux中执行pipe mode模式的执行命令如下,其中123456是密码:

cat /usr/local/java/redis/bin/data.txt | /usr/local/java/redis/bin/redis-cli -h localhost -p 6379 -a 123456 --pipe

Linux命令执行后打印的结果:

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

All data transferred. Waiting for the last reply...

ERR wrong number of arguments for 'set' command

Last reply received from server.

errors: 1, replies: 3

结论:

客户端的redis-cli pipe读取data.txt中的命令并解析它,尽可能快的发送数据到服务器,当读取最后一个命令之后,客户端就会发送一个特殊的ECHO命令,后面跟着20个随机的字符,等待收到的服务的答复就开始匹配这20个字符,当匹配时就可以成功完成退出。

,可见结果中返回errors: 1, replies: 3,说明redis收到了3条命令,其中1条错误。

也可以使用java代码执行命令:

String[] cmd = new String[] { "/bin/sh", "-c", "cat /usr/local/java/redis/bin/data.txt | /usr/local/java/redis/bin/redis-cli -h localhost -p 6379 -a 123456 --pipe" };

try {

Runtime.getRuntime().exec(cmd);

} catch (Exception e) {

e.printStackTrace();

}finally {

}

向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交