我對redis非常陌生,這一直讓我好奇。單個redis客戶端連接是否支持併發讀寫?
我在每個文件中都包含nodejs(npm的redis包)中使用單個redis客戶端連接。
對於例如:文件a.js用於讀取mysql並將數據插入到redis散列中,文件b.js讀取redis散列並輸出結果。
現在在一個生產環境中,我有大量的請求提供給服務於內容的b.js文件,並且在兩者之間我有一些對a.js文件的請求來更新動態內容。
我想知道對a.js的請求是否會減慢b.js中已經運行的redis連接。
我對redis非常陌生,這一直讓我好奇。單個redis客戶端連接是否支持併發讀寫?
我在每個文件中都包含nodejs(npm的redis包)中使用單個redis客戶端連接。
對於例如:文件a.js用於讀取mysql並將數據插入到redis散列中,文件b.js讀取redis散列並輸出結果。
現在在一個生產環境中,我有大量的請求提供給服務於內容的b.js文件,並且在兩者之間我有一些對a.js文件的請求來更新動態內容。
我想知道對a.js的請求是否會減慢b.js中已經運行的redis連接。
的Redis是單線程的,所以如果它是忙着寫數據時,你會讀出被推遲。
你會發現在這個信息SO回答:Redis is single-threaded, then how does it do concurrent I/O?
Redis是單線程的,因此沒有併發的讀/寫。如果有2個客戶端連接發送命令到redis,它們將被排隊。
然後是如果a.js發送大量的命令到Redis的,b.js命令將被插入a.js命令之間
沒有,連接不會被拖慢。什麼會放慢是來自redis的響應時間。但我懷疑你會注意到,因爲我們正在談論每個請求幾微秒。
請您選擇一個答案並將其標記爲已接受?這將有助於其他可能與您具有相同問題的SO用戶。 – peuh