2017-05-11 103 views
0

什麼是更好的方式來更新memcache中經常存在的密鑰 set()或replace()?memcache:更新密鑰的策略?

觀察:

我觀察組VS更換驅逐的影響。任何人都可以確認這兩個操作的內存管理點有什麼不同嗎?

回答

0

正如觀察提到,當我們使用set()操作用於更新已知的關鍵,我們正在驅逐。我們更新密鑰的頻率實際上是不可預測的,而且非常高。您可以將我們的案例與競爭資源的某種鎖實現聯繫起來。

一些按鍵,這是非常頻繁得到更新運行試驗後。我們觀察到replace()不會導致任何驅逐,但set()確實會導致驅逐。

通過內存緩存文檔herehere去後,來到了一個結論,即

  1. 集()操作總是調用內存分配,不考慮。這會導致在分配此密鑰的平板上進行驅逐。
  2. replace()操作沒有做任何內存分配。

因此,對於'更新經常存在的密鑰'的問題,替換是至少在我們的用例中更好的選擇。它幫助我們避免驅逐