偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

數(shù)據(jù)庫 Redis
Redis管道技術是一種批處理技術,用于一次性處理多個Redis命令,從而提高整個交互的性能。通常情況下,Redis是單行執(zhí)行的,當客戶端向服務器發(fā)送請求時,服務端接收并處理請求后再把結果返回給客戶端。

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

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

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

Redis 管道技術

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

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

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

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

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

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

性能對比

依賴

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

測試結果

總耗時: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") ;
}

測試結果

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

責任編輯:武曉燕 來源: Spring全家桶實戰(zhàn)案例源碼
相關推薦

2024-11-08 14:27:52

系統(tǒng)設計數(shù)據(jù)庫

2013-02-28 13:37:59

系統(tǒng)性能調(diào)優(yōu)技術實戰(zhàn)

2018-12-10 15:13:06

緩存系統(tǒng)性能數(shù)據(jù)

2009-02-18 20:27:24

組策略提升Windows性能

2009-03-22 19:19:15

多核多核服務器多核歷史

2015-07-28 09:19:10

Linux內(nèi)核

2024-12-11 07:59:02

2016-09-26 13:50:52

Linux系統(tǒng)性能

2011-08-09 17:15:45

注冊表注冊表編輯器

2023-06-12 00:22:50

操作系統(tǒng)應用程序內(nèi)核鎖

2016-08-29 17:10:17

JavascriptHtmlCSS

2023-10-23 08:23:16

系統(tǒng)性能數(shù)據(jù)庫

2019-06-21 14:40:52

緩存系統(tǒng)性能操作系統(tǒng)

2018-08-09 09:00:34

2012-12-10 13:43:07

固態(tài)硬盤系統(tǒng)性能內(nèi)存

2024-08-12 09:38:33

2023-10-17 14:35:22

人工智能AI

2010-04-23 11:44:34

Aix系統(tǒng)

2009-09-29 10:39:04

Linuxlinux系統(tǒng)性能檢測

2024-04-01 08:04:05

JProfilerJVM工具
點贊
收藏

51CTO技術棧公眾號