Redis 2.6 Redis 2.8 與ssdb的簡單對比

根據Redis 兩個版本的測試結果對比得出如下結論
前端

1、Redis 2.6主從同步在網絡閃斷的狀況下會自動開啓新的端口進行從新鏈,同時會進行一下操做:
shell

  一、斷開連接的從會向主發送SYNC命令網絡

  二、而後主fork進程導出rdb文件發送到從性能

  三、從接收到完整的數據後,清空Redis內數據而後在從RDB中恢復測試

  可是根據測試結果發現如下問題:優化

  一、多個主從關係同時斷開的時候,主導出RDB文件時,會佔用大量內存spa

  二、從接收到完整數據後,恢復數據的時候,會清空數據,這時候因爲Redis數據量很大,目前10G左右內存恢復速度大約1分鐘左右,這一分鐘內,不少請求沒法獲取數據code

  三、在從RDB恢復數據的過程當中,部分請求會被阻塞,致使請求超時(目前報警沒法獲取數據根次有關)orm

2、Redis 2.8.8 沒有發現以上問題,由於Redis 2.8連接閃斷從新鏈接後,從會從斷開以前的主從同步進度開始繼續同步,不會有全量恢復的問題接口

3、Redis 2.8 和 Redis 2.6 在進行save操做的時候,save過程當中全部的請求都會被阻塞,致使前端請求失敗,因此不要再查詢的從上進行save操做


根據以上得出建議:

一、Redis 升級到 2.8 以上,保證數據主從同步時候的可用性

二、不要直接在Redis從或主上進行save操做,能夠按王彬的建議在關鍵節點增長新的從用於save備份使用

三、建議優化Redis存儲,單個端口存儲數據不要過大,這樣能夠保證單個端口掛掉數據數據時候的速度,和影響面積


Redis 2.8和SSDB性能對比

SSDB 1.6.8.6

順序寫 :    1.645 ms/op       59.4 MB/s

隨機寫 :    1.679 ms/op       58.2 MB/s

順序讀 :    1.286 ms/op       75.9 MB/s

隨機讀 :    1.225 ms/op       79.7 MB/s

rpush  :    1.546 ms/op       63.2 MB/s

lpop   :    1.303 ms/op       74.9 MB/s


Redis 2.8.8

順序寫 :    1.617 ms/op       60.4 MB/s

隨機寫 :    1.214 ms/op       80.4 MB/s

順序讀 :    1.156 ms/op       84.5 MB/s

隨機讀 :    1.153 ms/op       84.7 MB/s

rpush  :    1.222 ms/op       79.9 MB/s

lpop   :    1.153 ms/op       84.7 MB/s


如下測試,是測試的某個業務接口,因此不表明Redis的性能,須要由如下多種狀況的對比,來獲得結論。

Redis 2.6 直接查詢主時候的 壓測信息

Concurrency Level:      50
	Time taken for tests:   65.615809 seconds
	Complete requests:      200000
	Failed requests:        0
	Write errors:           0
	Total transferred:      7234636173 bytes
	HTML transferred:       7171835859 bytes
	Requests per second:    3048.05 [#/sec] (mean)
	Time per request:       16.404 [ms] (mean)
	Time per request:       0.328 [ms] (mean, across all concurrent requests)
	Transfer rate:          107673.35 [Kbytes/sec] received

	Connection Times (ms)
		      min  mean[+/-sd] median   max
	Connect:        0    0   0.6      0       2
	Processing:     5   15   1.7     15      59
	Waiting:        4   11   1.4     11      57
	Total:          5   15   1.8     16      59

	Percentage of the requests served within a certain time (ms)
	  50%     16
	  66%     16
	  75%     17
	  80%     17
	  90%     18
	  95%     18
	  98%     20
	  99%     20
	 100%     59 (longest request)

Redis 2.6 直接查詢主而且有從正在wait_bgsave時候的 壓測信息

Concurrency Level:      50
	Time taken for tests:   66.575526 seconds
	Complete requests:      200000
	Failed requests:        0
	Write errors:           0
	Total transferred:      7234643440 bytes
	HTML transferred:       7171842812 bytes
	Requests per second:    3004.11 [#/sec] (mean)
	Time per request:       16.644 [ms] (mean)
	Time per request:       0.333 [ms] (mean, across all concurrent requests)
	Transfer rate:          106121.30 [Kbytes/sec] received

	Connection Times (ms)
		      min  mean[+/-sd] median   max
	Connect:        0    0   0.6      0       2
	Processing:    10   15   4.6     15     252
	Waiting:        7   11   4.5     11     247
	Total:         10   16   4.5     16     252

	Percentage of the requests served within a certain time (ms)
	  50%     16
	  66%     16
	  75%     17
	  80%     17
	  90%     18
	  95%     19
	  98%     20
	  99%     22
	 100%    252 (longest request)

Redis 2.6 查詢從時候的 壓測結果

Concurrency Level:      50
	Time taken for tests:   68.835666 seconds
	Complete requests:      200000
	Failed requests:        0
	Write errors:           0
	Total transferred:      7234623168 bytes
	HTML transferred:       7171822854 bytes
	Requests per second:    2905.47 [#/sec] (mean)
	Time per request:       17.209 [ms] (mean)
	Time per request:       0.344 [ms] (mean, across all concurrent requests)
	Transfer rate:          102636.64 [Kbytes/sec] received

	Connection Times (ms)
		      min  mean[+/-sd] median   max
	Connect:        0    0  42.4      0    3000
	Processing:     3   15  21.4     15    3017
	Waiting:        2   11  21.4     11    3011
	Total:          3   16  47.5     16    3021

	Percentage of the requests served within a certain time (ms)
	  50%     16
	  66%     16
	  75%     17
	  80%     17
	  90%     18
	  95%     19
	  98%     21
	  99%     22
	 100%   3021 (longest request)

Redis 2.6 查詢從而且 因爲網絡閃斷 正在與主進行 同步操做

Concurrency Level:      50
	Time taken for tests:   125.321846 seconds
	Complete requests:      200000
	Failed requests:        193893
	   (Connect: 0, Length: 193893, Exceptions: 0)
	Write errors:           0
	Total transferred:      7014619430 bytes
	HTML transferred:       6952844946 bytes
	Requests per second:    1595.89 [#/sec] (mean)
	Time per request:       31.330 [ms] (mean)
	Time per request:       0.627 [ms] (mean, across all concurrent requests)
	Transfer rate:          54660.97 [Kbytes/sec] received

	Connection Times (ms)
		      min  mean[+/-sd] median   max
	Connect:        0    0   0.6      0       3
	Processing:    10   30 231.8     15   14278
	Waiting:        7   26 232.0     11   14277
	Total:         10   30 231.8     16   14278

	Percentage of the requests served within a certain time (ms)
	  50%     16
	  66%     16
	  75%     17
	  80%     17
	  90%     18
	  95%     19
	  98%    355
	  99%    430
	 100%  14278 (longest request)

Redis 2.8.8 查詢從時候的 壓測結果

Concurrency Level:      50
	Time taken for tests:   68.335567 seconds
	Complete requests:      200000
	Failed requests:        0
	Write errors:           0
	Total transferred:      7234728872 bytes
	HTML transferred:       7171927302 bytes
	Requests per second:    2926.73 [#/sec] (mean)
	Time per request:       17.084 [ms] (mean)
	Time per request:       0.342 [ms] (mean, across all concurrent requests)
	Transfer rate:          103389.27 [Kbytes/sec] received

	Connection Times (ms)
		      min  mean[+/-sd] median   max
	Connect:        0    1  46.0      0    3001
	Processing:     3   15  24.5     15    2855
	Waiting:        2   11  24.5     11    2852
	Total:          3   16  52.1     16    3022

	Percentage of the requests served within a certain time (ms)
	  50%     16
	  66%     16
	  75%     17
	  80%     17
	  90%     18
	  95%     18
	  98%     19
	  99%     20
	 100%   3022 (longest request)

Redis 2.8.8 查詢從而且 因爲網絡閃斷 正在與主進行 同步操做

Concurrency Level:      50
	Time taken for tests:   67.968708 seconds
	Complete requests:      200000
	Failed requests:        0
	Write errors:           0
	Total transferred:      7234653576 bytes
	HTML transferred:       7171852948 bytes
	Requests per second:    2942.53 [#/sec] (mean)
	Time per request:       16.992 [ms] (mean)
	Time per request:       0.340 [ms] (mean, across all concurrent requests)
	Transfer rate:          103946.23 [Kbytes/sec] received

	Connection Times (ms)
		      min  mean[+/-sd] median   max
	Connect:        0    1  46.0      0    3001
	Processing:     3   15   1.9     15      30
	Waiting:        2   11   1.5     11      23
	Total:          3   16  46.0     16    3026

	Percentage of the requests served within a certain time (ms)
	  50%     16
	  66%     16
	  75%     17
	  80%     17
	  90%     18
	  95%     18
	  98%     19
	  99%     20
	 100%   3026 (longest request)
相關文章
相關標籤/搜索