2013-08-19 54 views
0

我在memcached中有一些值,例如500,000。 當我嘗試使用其鍵獲取特定值並使用其get方法時。它需要20毫秒,5毫秒等隨機時間。有時大約500毫秒。MemcachedClient使用其獲取方法的性能

memcached是這麼慢嗎?或者有什麼方法可以提高其性能?我通過以下方式測試時間。我在獲取值之前和獲取值之後以ms爲單位打印了系統時間。

System.currentTimeMillis(); 
memcachedClient.get("key"); 
System.currentTimeMillis(); 

如果我在memcached中設置了一些值,並嘗試在同一次運行中從它們中獲取一個值。那麼我將會獲得更多的時間。但是如果我將分開完成這些任務,我會減少獲取時間。爲什麼?

回答

0

不,它不是那麼慢。這隻取決於你的系統如何設置。

第一個問題是:你的memcached在哪裏?它是一個本地memcached(與您執行此java代碼的位置相同的機器上)還是遠程memcached? 如果它是遠程的,那麼你需要知道你的盒子和遠程盒子之間的延遲是多少(儘管500毫秒很多)。 另外,還有哪些運行在您執行java的盒子上,以及運行memcached的盒子上還運行着什麼?

memcached速度很快,所以這是您的配置問題......如果您希望我們爲您提供幫助,您需要調查並提供更多信息。

此外,當您使用外部庫(spymemcached在這裏),請提供其版本(我假設2.8.12)。有時候,某個特定版本存在已知問題(但這裏不是這種情況)。

+0

我在本地系統上執行我的java代碼,memcached也在本地系統上執行。我在安裝memcached時已經分配了1Gb。現在我已經關閉了在我的系統上運行的所有其他應用程序並運行測試。現在我得到大約10毫秒的值。但不是特別的價值。 –

+0

只需要多少時間就可以從ms緩存中獲取值。 –

+0

是否需要隨機時間值才能從緩存中獲取值? –

相關問題