Redis學習筆記(9)-管道/分布式

來源:互聯網
上載者:User

標籤:

package cn.com;import java.util.Arrays;import java.util.List;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisShardInfo;import redis.clients.jedis.Pipeline;import redis.clients.jedis.ShardedJedis;import redis.clients.jedis.ShardedJedisPipeline;public class Redis_Dispersed {/** * 分布式直連同步調用 * */public static void sync_dispersed(){List<JedisShardInfo> shards = Arrays.asList(             new JedisShardInfo("localhost",6379),             new JedisShardInfo("localhost",6380));     ShardedJedis sharding = new ShardedJedis(shards);     long start = System.currentTimeMillis();     for (int i = 0; i < 100000; i++) {         String result = sharding.set("userid" + i, "age" + i);     }     long end = System.currentTimeMillis();     System.out.println("執行實行: " + ((end - start)/1000.0) + " seconds");     sharding.disconnect(); }/** * 分布式直連非同步呼叫 * */public static void shardpipelined() {     List<JedisShardInfo> shards = Arrays.asList(             new JedisShardInfo("localhost",6379),             new JedisShardInfo("localhost",6380));     ShardedJedis sharding = new ShardedJedis(shards);     ShardedJedisPipeline pipeline = sharding.pipelined();     long start = System.currentTimeMillis();     for (int i = 0; i < 100; i++) {         pipeline.set("userid" + i, "age" + i);     }     List<Object> results = pipeline.syncAndReturnAll();     long end = System.currentTimeMillis();     System.out.println("執行時間: " + ((end - start)/1000.0) + " seconds");     sharding.disconnect(); }/** * 管道  pipeline方式是將一些列命令打包一起發送到伺服器執行。 * 而服務端會處理完多條命令後會將多條命令的處理結果打包到一起返回給用戶端 * 注意:打包的命令越多,緩衝消耗記憶體也越多。所以並是不是打包的命令越多越好 * */public static void pipeline(){ Jedis jedis = new Jedis("localhost",6379);     Pipeline pipeline = jedis.pipelined();     long start = System.currentTimeMillis();     for (int i = 0; i < 100000; i++) {         pipeline.set("p" + i, "p" + i);     }     List<Object> results = pipeline.syncAndReturnAll();     long end = System.currentTimeMillis();     System.out.println("Pipelined SET: " + ((end - start)/1000.0) + " seconds");     //jedis.disconnect();     jedis.close();}/** * 管道中調用事務 * */public static void trans_pipeline(){Jedis jedis = new Jedis("localhost",6379);     long start = System.currentTimeMillis();     Pipeline pipeline = jedis.pipelined();     pipeline.multi();     for (int i = 0; i < 100000; i++) {         pipeline.set("" + i, "" + i);     }     pipeline.exec();     List<Object> results = pipeline.syncAndReturnAll();     long end = System.currentTimeMillis();     System.out.println("Pipelined transaction: " + ((end - start)/1000.0) + " seconds");     jedis.disconnect(); }public static void main(String [] args){shardpipelined();}}

  

Redis學習筆記(9)-管道/分布式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.