亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

環(huán)境:SpringBoot2.6.12 + redis6

Redis是一種基于客戶端-服務(wù)端模型以及請(qǐng)求/響應(yīng)協(xié)議的TCP服務(wù)。這意味著通常情況下一個(gè)請(qǐng)求會(huì)遵循以下步驟:

  1. 客戶端向服務(wù)端發(fā)送一個(gè)查詢請(qǐng)求,并監(jiān)聽Socket返回,通常是以阻塞模式,等待服務(wù)端響應(yīng)。
  2. 服務(wù)端處理命令,并將結(jié)果返回給客戶端。

Redis 管道技術(shù)

Redis管道技術(shù)是一種批處理技術(shù),用于一次性處理多個(gè)Redis命令,從而提高整個(gè)交互的性能。通常情況下,Redis是單行執(zhí)行的,當(dāng)客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),服務(wù)端接收并處理請(qǐng)求后再把結(jié)果返回給客戶端。然而,當(dāng)出現(xiàn)集中大批量的請(qǐng)求時(shí),每個(gè)請(qǐng)求都需要經(jīng)歷先請(qǐng)求再響應(yīng)的過程,這會(huì)造成網(wǎng)絡(luò)資源浪費(fèi)。此時(shí),管道技術(shù)應(yīng)運(yùn)而生,它把所有的命令整合一次發(fā)給服務(wù)端,再一次響應(yīng)給客戶端,從而大大提高了Redis的響應(yīng)速度。

Redis普通請(qǐng)求模型與管道請(qǐng)求模型對(duì)比

Redis管道技術(shù)瞬間提升系統(tǒng)性能,速度翻倍!(普通請(qǐng)求模型)來源網(wǎng)絡(luò)

RTT(Round-Trip Time),就是往返時(shí)延,在計(jì)算機(jī)網(wǎng)絡(luò)中它是一個(gè)重要的性能指標(biāo),表示從發(fā)送端發(fā)送數(shù)據(jù)開始,到發(fā)送端收到來自接收端的確認(rèn)(接收端收到數(shù)據(jù)后便立即發(fā)送確認(rèn)),總共經(jīng)歷的時(shí)延。

一般認(rèn)為,單向時(shí)延 = 傳輸時(shí)延t1 + 傳播時(shí)延t2 + 排隊(duì)時(shí)延t3

Redis管道技術(shù)瞬間提升系統(tǒng)性能,速度翻倍!(管道請(qǐng)求模型)來源網(wǎng)絡(luò)

性能對(duì)比

依賴

<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("耗時(shí):" + (System.currentTimeMillis() - start) + " ms") ;
}

測(cè)試結(jié)果

Redis管道技術(shù)瞬間提升系統(tǒng)性能,速度翻倍!

總耗時(shí):47秒左右

管道技術(shù)

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("耗時(shí):" + (System.currentTimeMillis() - start) + " ms") ;
}

測(cè)試結(jié)果

Redis管道技術(shù)瞬間提升系統(tǒng)性能,速度翻倍!

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

分享到:
標(biāo)簽:Redis
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定