为什么memcached set操作不是幂等的?

Why memcached set operation is not idempotent?

在 Facebook 论文的第 2 页 "Scaling Memcache at Facebook" 他们说 "For write requests,the webserver issues SQL statements to the database and then sends a delete request to memcache that invalidates any stale data. We choose to delete cached data instead of updating it because deletes are idempotent."

为什么update/set不是幂等运算?

论文可以在这里找到:https://www.usenix.org/system/files/conference/nsdi13/nsdi13-final170_update.pdf

如果你一个接一个地调用delete两次,second delete不会有任何效果。 Update/set 此处的行为不同:虽然它不会更改与密钥关联的值,但它将更新密钥的最后访问时间,从而更改密钥何时被逐出的逻辑。从这个意义上说,删除键操作是幂等的,而更新键的值不是。

例如在论文中,如果没有人试图读取它,他们不想在缓存中保留一个密钥(即使数据库中对该密钥有很多写入)。