自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么?Redis的QPS是MySQL的100倍?

數(shù)據(jù)庫 MySQL Redis
原來總聽別人說 Redis 讀寫性能優(yōu)越適合做緩存,而 MySQL 則不行,那么你有真正了解過他們的讀寫差距嗎?小匠同樣也有這個(gè)疑問,到底他們的性能差多少?于是就有了這篇文章。

 前言

原來總聽別人說 Redis 讀寫性能優(yōu)越適合做緩存,而 MySQL 則不行,那么你有真正了解過他們的讀寫差距嗎?小匠同樣也有這個(gè)疑問,到底他們的性能差多少?于是就有了這篇文章。

測試環(huán)境配置

Ubuntu Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz 8GB DDR3, 40GB SSD

Redis

進(jìn)入 Redis[1] 官網(wǎng),使用如下步驟安裝。

 

  1. $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz  
  2. $ tar xzf redis-5.0.5.tar.gz  
  3. $ cd redis-5.0.5  
  4. $ make 

啟動(dòng)服務(wù)

 

  1. $ src/redis-server 

運(yùn)行 Redis 自帶的基準(zhǔn)測試工具,運(yùn)行 set,get 1000000 次,1s 后退出并顯示數(shù)據(jù)

 

  1. $ cd src    
  2. $ ./redis-benchmark -n 1000000 -t set,get -q 

數(shù)據(jù)顯示如下,結(jié)果為 SET 48009,GET 56960。

 

  1. SET: 48009.98 requests per second  
  2. GET: 56960.59 requests per second 

當(dāng)然這數(shù)據(jù)是沒有使用 pipeline 的情況下,那么使用了 pipeline 又是什么場景呢?運(yùn)行命令如下,運(yùn)行 set,get 1000000 次,每次發(fā)送 200 個(gè)請(qǐng)求到服務(wù)端,1s 后退出并顯示數(shù)據(jù)

 

  1. $ cd src    
  2. $ ./redis-benchmark -n 1000000 -t set,get -P 200 -q 

數(shù)據(jù)顯示如下,結(jié)果為 SET 315258,GET 330797。這里你可以自行調(diào)整 -P 的數(shù)值,上升到 30000 上下保持平穩(wěn),所以如下數(shù)據(jù)是理論上最佳的測試數(shù)據(jù)。

 

  1. SET: 315258.53 requests per second  
  2. GET: 330797.22 requests per second 

好的,到這里我們就知道了,Redis 的大致數(shù)據(jù)為 50000 - 300000,那么我們趕緊看看 MySQL 唄?

MySQL

可前往 MySQL[2] 官網(wǎng)自行安裝 MySQL,我的服務(wù)環(huán)境是 Ubuntu,所以我的安裝命令如下

 

  1. $ sudo apt-get install mysql-server  
  2. $ sudo apt-get install mysql-client 

我測試 MySQL 的性能使用 sysbench[3] 工具,所以接下來我們需要安裝一下。

 

  1. $ url -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash  
  2. sudo apt -y install sysbench 

安裝 sysbench 以后在 /usr/share/sysbench/ 目錄下面會(huì)自帶一些測試腳本,直接可以使用,我們只需要手動(dòng)創(chuàng)建一個(gè)名為 benchmark 的 database,然后運(yùn)行如下命令,準(zhǔn)備數(shù)據(jù)->測試數(shù)據(jù)

 

 

  1. sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=root --mysql-db=benchmark --tables=10 --table-size=1000000 --events=100000000 --report-interval=10 --threads=4 --time=300 prepare  
  2. sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=root --mysql-db=benchmark --tables=10 --table-size=1000000 --events=100000000 --report-interval=10 --threads=4 --time=300 run 

 

運(yùn)行完成以后數(shù)據(jù)如下

 

  1. [ 10s ] thds: 4 tps: 198.84 qps: 3982.73 (r/w/o: 2788.48/796.17/398.08) lat (ms,95%): 54.83 err/s: 0.00 reconn/s: 0.00  
  2. [ 20s ] thds: 4 tps: 174.38 qps: 3486.62 (r/w/o: 2440.73/697.12/348.76) lat (ms,95%): 52.89 err/s: 0.00 reconn/s: 0.00  
  3. [ 30s ] thds: 4 tps: 204.54 qps: 4089.94 (r/w/o: 2863.12/817.75/409.07) lat (ms,95%): 55.82 err/s: 0.00 reconn/s: 0.00  
  4. [ 40s ] thds: 4 tps: 214.98 qps: 4299.59 (r/w/o: 3009.71/859.92/429.96) lat (ms,95%): 49.21 err/s: 0.00 reconn/s: 0.00  
  5. [ 50s ] thds: 4 tps: 188.31 qps: 3767.98 (r/w/o: 2637.12/754.24/376.62) lat (ms,95%): 52.89 err/s: 0.00 reconn/s: 0.00  
  6. [ 60s ] thds: 4 tps: 228.00 qps: 4559.06 (r/w/o: 3191.64/911.41/456.01) lat (ms,95%): 49.21 err/s: 0.00 reconn/s: 0.00 

叮叮叮,是不是發(fā)現(xiàn)了什么?數(shù)據(jù)顯示 MySQL 的 QPS 為 4000 左右浮動(dòng)。

結(jié)論

此時(shí)一句話脫口而出重劍無鋒,大巧不工,Redis 的優(yōu)秀性能真的不是擂的,正如 《Redis in Action》中提到,Redis 的性能會(huì)是普通關(guān)系型數(shù)據(jù)庫的 10 - 100 倍,如果你不是親眼所見也不敢相信?那么你可以親自動(dòng)手試試嘍?

PS: 當(dāng)然并不是說因此就不用 MySQL 了,他們的特質(zhì)不同決定了他們的場景,MySQL 的 InnoDB 引擎是的他有非常健全的事務(wù)系統(tǒng),還是各領(lǐng)風(fēng)騷哦。

 

 

責(zé)任編輯:龐桂玉 來源: Hollis
相關(guān)推薦

2020-09-09 16:20:16

區(qū)塊鏈比特幣數(shù)字貨幣

2024-11-25 09:11:43

2025-04-27 01:30:01

業(yè)務(wù)系統(tǒng)QPS

2021-03-03 08:01:58

Redis多線程程序

2019-01-10 09:32:59

MySQL負(fù)載架構(gòu)

2020-03-26 12:38:15

代碼節(jié)點(diǎn)數(shù)據(jù)

2009-11-18 17:44:38

2022-01-13 14:31:56

MySQL數(shù)據(jù)庫回表

2020-06-11 09:35:39

Redis單線程Java

2024-04-24 07:00:00

Redis架構(gòu)數(shù)據(jù)持久化

2023-03-15 16:00:14

JavaJava new開發(fā)

2023-05-04 07:34:37

Rust代碼CPU

2010-08-23 10:50:25

程序員

2024-12-02 09:10:15

Redis性能優(yōu)化

2024-11-25 07:00:00

RedisMySQL數(shù)據(jù)庫

2021-04-21 18:57:16

二進(jìn)制存儲(chǔ)空間

2013-02-28 10:35:59

hadoop大數(shù)據(jù)Hortonworks

2016-01-21 09:45:25

Wi-FiLi-Fi無線傳輸

2024-04-08 18:55:54

RustC++開發(fā)

2024-02-19 00:00:00

QPS計(jì)算程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)