0

有什么更好的方法来更新 memcache set() 或 replace() 中经常存在的键?

观察:

我观察到 set vs replace 对驱逐的影响。任何人都可以确认这两个操作与内存管理点有什么区别吗?

4

1 回答 1

0

正如观察中提到的,当我们使用 set() 操作更新已知密钥时,我们会被驱逐。我们更新密钥的频率确实不可预测且非常高。您可以将我们的案例与竞争资源的某种锁实现联系起来。

在使用一些密钥进行实验后,这些密钥会非常频繁地更新。我们观察到 replace() 不会导致任何驱逐,但 set() 确实会导致驱逐。

在浏览了 memcache docs herehere之后,得出的结论是

  1. set() 操作总是调用内存分配,不管。这导致了分配此密钥的平板上的驱逐。
  2. replace() 操作没有进行任何内存分配。

因此,对于“更新常用密钥”的问题,至少对于我们的用例来说,替换是更好的选择。它帮助我们避免了驱逐

于 2017-05-13T07:39:11.733 回答