一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - SpringBoot項目中Redis之管道技術

SpringBoot項目中Redis之管道技術

2021-03-23 23:24今日頭條FastCoder JAVA教程

Redis 管道技術可以在服務端未響應時,客戶端可以繼續向服務端發送請求,并最終一次性讀取所有服務端的響應。

SpringBoot項目中Redis之管道技術

環境:springboot2.3.9.RELEASE + redis3.2.100

Redis是一種基于客戶端-服務端模型以及請求/響應協議的TCP服務。這意味著通常情況下一個請求會遵循以下步驟:

  • 客戶端向服務端發送一個查詢請求,并監聽Socket返回,通常是以阻塞模式,等待服務端響應。
  • 服務端處理命令,并將結果返回給客戶端。

Redis 管道技術

Redis 管道技術可以在服務端未響應時,客戶端可以繼續向服務端發送請求,并最終一次性讀取所有服務端的響應。

Redis普通請求模型與管道請求模型對比

SpringBoot項目中Redis之管道技術

(普通請求模型)來源網絡

RTT(Round-Trip Time),就是往返時延,在計算機網絡中它是一個重要的性能指標,表示從發送端發送數據開始,到發送端收到來自接收端的確認(接收端收到數據后便立即發送確認),總共經歷的時延。

一般認為,單向時延 = 傳輸時延t1 + 傳播時延t2 + 排隊時延t3

SpringBoot項目中Redis之管道技術

(管道請求模型)來源網絡

性能對比

依賴

<dependency> 

            <groupId>org.springframework.boot</groupId> 

            <artifactId>spring-boot-starter-data-redis</artifactId> 

        </dependency> 

        <dependency> 

            <groupId>org.apache.commons</groupId> 

            <artifactId>commons-pool2</artifactId> 

</dependency> 

配置文件

spring: 

  redis: 

    host: localhost 

    port: 6379 

    password: ****** 

    database: 4 

    lettuce: 

      pool: 

        maxActive: 8 

        maxIdle: 100 

        minIdle: 10 

        maxWait: -1 

普通方法

@Resource 

private StringRedisTemplate stringRedisTemplate ; 

public void execNormal() { 

        long start = System.currentTimeMillis() ; 

        for (int i = 0; i < 100_000; i++) { 

            stringRedisTemplate.opsForValue().set("k" + i, "v" + i) ; 

        } 

        System.out.println("耗時:" + (System.currentTimeMillis() - start) + " ms") ; 

測試結果

SpringBoot項目中Redis之管道技術

總耗時:47秒左右

管道技術

public void execPipeline() { 

        long start = System.currentTimeMillis() ; 

        stringRedisTemplate.executePipelined(new RedisCallback<Object>() { 

            @Override 

            public Object doInRedis(RedisConnection connection) throws DataAccessException { 

                for (int i = 0; i < 100_000; i++) { 

                    connection.set(("pk" + i).getBytes(), ("pv" + i).getBytes()) ; 

                } 

                return null ; 

            } 

        }) ; 

        System.out.println("耗時:" + (System.currentTimeMillis() - start) + " ms") ; 

測試結果

SpringBoot項目中Redis之管道技術

耗時:13秒左右

性能提升了3倍多。

完畢?。?!

原文地址:https://www.toutiao.com/i6942277978181304863/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色屁屁二区 | 91精品综合 | 国产精品一区二区三区久久 | 男人的j放进女人的p全黄 | 青春学堂在线观看 | 国产精品视频免费观看 | 亚洲香蕉网久久综合影院3p | 亚洲四虎 | 日韩精品国产自在欧美 | 毛片 ftp| 国产 日韩 一区 | 亚洲日本中文字幕在线2022 | aaa级黄色片| 视频一区二区三区在线观看 | 国产精品区一区二区免费 | 国产激情一区二区三区成人91 | 韩国帅男同gay网站 韩国三级在线播放 | 亚洲国产精品久久卡一 | 欧美一区二区三区视视频 | 小舞丝袜调教喷水沦为肉奴 | 亚洲码和乱人伦中文一区 | 五月最新商场女厕所高跟嘘嘘 | fistingvideos头交尿眼 | 欧美透逼视频 | 欧美黑人一级片 | 蜜桃久久久亚洲精品成人 | 日韩视频一区 | 亚洲区精品久久一区二区三区 | 卫生间被教官做好爽HH视频 | 呜呜别塞了啊抽插 | 日韩精品久久不卡中文字幕 | 69短视频| 三极片在线观看 | 啪哆哆 | 人人揉人人爽五月天视频 | 青青网站 | 久草草在线视视频 | 疯狂激吻添下边小说 | 韩国情事伦理片观看地址 | 丝瓜视频看污片 | 女教师的一级毛片 |