2012-12-21 79 views
4

我正在通過設置配置平臺/服務的選項來爲所有客戶端服務/應用程序提供配置。要求是這應該在專用服務器上設置。在同一臺服務器上設置redis及其客戶端應用程序

我在研究redis是否可以作爲支持複雜鍵值配置的可能選項之一。如果Redis要設置在不同於服務器的服務器上,那麼GET會涉及一些網絡延遲(我不是非常擔心SET,因爲它們將比GET少得多)。我應該在客戶機上設置另一個緩存層(例如EhCache或其他)以避免機器到機器的網絡延遲?在這種情況下需要處理高速緩存同步和失效。另外,我讀過redis支持複製,但客戶端服務器上的從服務器(這是主服務器的精確副本)將佔用大量內存,因爲redis主要使用RAM來存儲所有數據。此外,他們都可以爭奪CPU /資源。

注意:客戶端服務/應用程序當前部署在Amazon EC2媒體實例上。而且類似的也可以用於redis。

請讓我知道,如果有這個架構有任何好的選擇,或者這根本不好。提前致謝。

+0

我們在說什麼類型的GET /秒?這兩個實例是否在同一個網絡上? – sberry

+0

這兩個將在同一地區的亞馬遜ec2實例。 GET /秒可能最多爲幾百或幾千。 – Swapnil

回答

4

如果他們都在同一個地區的EC2實例,那麼我不會太擔心網絡延遲。如果你認爲你有很多數據,我會使用m1large或m1xlarge作爲redis。根據您的要求,緩存可能有意義也可能沒有意義。

我已經在EC2中使用了redis,每秒交易數千次,沒有任何問題。

+0

感謝您的快速響應。 「如果他們都是在同一地區的EC2實例,那麼我不會太擔心網絡延遲。」 - 沒有本地緩存​​幫助避免延遲? – Swapnil

4

如果您好奇,我最近基準了從本地Redis服務器或同一個數據中心的請求之間的差異。我在Rackspace服務器上測試過。我使用的Redis服務器已經建立了一些長長的字符串列表。每個字符串大約400字節。我使用lrange命令檢索數據,在每個示例中調用它60次,並嘗試請求列表的一小部分(每個lrange命令15個項目)和整個列表(每個lrange命令1000個項目)。

結果如下。

Server Location  Items/request Time (s) 
Regional Server  1000    4.270628188 
Regional Server  15    0.095376321 
Local Host   1000    0.207240364 
Local Host   15    0.00823119 
相關問題