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