日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

環境:SpringBoot2.6.12 + redis6

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

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

Redis 管道技術

Redis管道技術是一種批處理技術,用于一次性處理多個Redis命令,從而提高整個交互的性能。通常情況下,Redis是單行執行的,當客戶端向服務器發送請求時,服務端接收并處理請求后再把結果返回給客戶端。然而,當出現集中大批量的請求時,每個請求都需要經歷先請求再響應的過程,這會造成網絡資源浪費。此時,管道技術應運而生,它把所有的命令整合一次發給服務端,再一次響應給客戶端,從而大大提高了Redis的響應速度。

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

Redis管道技術瞬間提升系統性能,速度翻倍!(普通請求模型)來源網絡

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

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

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") ;
}

測試結果

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") ;
}

測試結果

Redis管道技術瞬間提升系統性能,速度翻倍!

耗時:13秒左右,性能提升了3倍多。

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定