2013-04-21 24 views
4

我的理解是Memcached是無鎖的(在其默認配置下),因此沒有客戶端可以阻止任何其他客戶端的操作。如果是這樣,那麼Memcached如何處理兩個或多個客戶端同時嘗試更新同一個對象?在Memcached中如何處理併發更新?

Memcached如何處理對象的多個版本?只需要更新最後一個並從緩存中逐出其他版本的那個?數據庫是否主動使緩存在Memcached服務器上的對象失效?

回答

2

Memcached只保留最後一個版本的對象。如果你得到,修改並且你不能保證這個賣出價與獲得的價值相同。如果需要同步,則可以使用CAS操作(gets,cas)。