2017-05-11 57 views
0

什么是更好的方式来更新memcache中经常存在的密钥 set()或replace()?memcache:更新密钥的策略?

观察:

我观察组VS更换驱逐的影响。任何人都可以确认这两个操作的内存管理点有什么不同吗?

回答

0

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

一些按键,这是非常频繁得到更新运行试验后。我们观察到replace()不会导致任何驱逐,但set()确实会导致驱逐。

通过内存缓存文档herehere去后,来到了一个结论,即

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

因此,对于'更新经常存在的密钥'的问题,替换是至少在我们的用例中更好的选择。它帮助我们避免驱逐