redis其他問題

來源:互聯網
上載者:User

標籤:串連   時間   content   bsp   總結   url   hidden   遠程   lap   

如何解決redis高並發用戶端頻繁time out?現在業務上每天有5億+的請求,平時redis的操作在2K+每秒左右。到了高峰有3K+,這時候用戶端就會頻繁的報connect time out的異常。
但是,資料上說redis可以達到10W每秒。3K遠遠不到w這個層級啊,請問有什麼建議最佳化現在的情況嗎?答:redis串連數有多少?是否超過了max open files的限制?

直接top看看redis是否跑滿CPU等等。

還有逾時時間配置多少等等。

 

答:你可以把你應用的部署環境描述下,使用什麼樣的用戶端,長串連還是短串連,redis是單機環境還是叢集環境,redis是否配置了持久化,什麼樣的持久化方式,還有就是redis伺服器的硬體設施,把這些描述清楚然後再分析原因。 最近剛在一個大型活動中大量使用了Redis,前幾次線上高並發類比的確出現了類似題主的問題。修正方式有二:
1.伺服器對TCP和HTTP的限制(直接拒絕或逾時)
2.Redis對並發數的限制(maxclients參數,Once the limit is reached Redis will close all the new connections sending an error ‘max number of clients reached‘.)

對了,我的平台是Windows+.Net+Redis(ServiceStack)

Redis的單線程屬性

Redis 使用了單線程的設計, 意味著單線程服務於所有的用戶端請求,使用一種複用的技術。這種情況下redis可以在任何時候處理單個請求, 所以所有的請求是順序處理的。這和Node.js的工作方式很像, 所有的產出通常不會有慢的感覺,因為處理單個請求的時間非常短,但是最重要的是這些產品被設計為非阻塞系統調用,比如從通訊端中讀取或寫入資料。

我提到過Redis從2.4版本後幾乎是單線程的,我們使用線程在後台運行一些效率低下的I/O操作, 主要關係到硬碟I/O,但是這不改變Redis使用單線程處理所有請求的事實。

 

總結:就是reids本身效能沒有問題,處理並發能力ok,就是跨伺服器遠端存取其他伺服器reids時,並發大了,網路延遲等,會出現取reids卡死。

redis其他問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.