echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!java
当咱们使用普通方法插入大量数据到Redis的时候,咱们发现,咱们的插入数据并无Redis宣传的那么快,号称有10w吞吐量的Redis为何会在咱们插入大量的数据的时候很慢呢?这就是本文要作说明的地方redis
Redis号称有10w的吞吐量,可是咱们使用普通方法插入的时候,咱们发现并无达到这样的数据,主要缘由是咱们插入的时候屡次链接操做,建立链接须要时间,同时,一个链接就会由一个数据包,多个数据包的传送网络并不能保证一致,这些都是影响咱们大量数据插入性能的。微信
使用Pipeline网络
// 在pom依赖中添加jedis依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> // 使用jedis实现pipeline调用 public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.135", 6379); Pipeline pipeline = jedis.pipelined(); long startTime = System.currentTimeMillis(); IntStream.range(0, 1000000).forEach(it -> pipeline.set("batch" + it, it + "")); pipeline.syncAndReturnAll(); long endTime = System.currentTimeMillis(); System.out.println(endTime - startTime); }
实测插入速度以下:性能
pipeline其实就是在咱们的操做中节省了不少的I/O操做,将咱们多个get或者set操做的I/O操做变成一个I/O操做,节省了不少的I/O时间。同时,让咱们的网络影响I/O数据包传输的问题减到最小。学习
若是咱们的redis有密码,那么咱们上面的代码须要加一行设置密码code
jedis.auth("密码");
作一个有底线的博客主blog