2011-07-07 11 views
2

是否有機會在多線程環境中爲memcached中的某個鍵獲取亂碼值?如果是的話,如何以最少的同步時間來避免它?Memcached獲取和放置方法是線程安全的

使用Java客戶端來訪問memcached服務器

+3

您的問題標題的寫法與問題文本不同。被接受的答案似乎暗示該方法由於標題而不是線程安全的。 –

回答

9

號內存緩存會返回一個值,有人以前寫的,而不是亂碼值。如果你得到/修改/放棄,你不能保證這個賣出價適用於和賣價相同的價值。如果需要同步,請使用cas(比較和設置)操作。

+0

是否記錄了此行爲?我想閱讀您是否可以鏈接到文檔。 –

+0

這個文件的行爲:http://code.google.com/p/memcached/wiki/FAQ#What_are_memcached_threads? 「在緩存內部運行在全局鎖定下」,因此您不能有兩個請求修改一個密鑰並對其進行篡改。 –

+0

http://code.google.com/p/memcached/wiki/FAQ#Is_memcached_atomic ?,我正在尋找,謝謝 – leftrright