.net - MemoryCache.Add和MemoryCache.Set有什么区别?

我阅读了MSDN文档但没有真正理解它。

我相信Set的行为是“替换现有的,或添加”(原子地)。

那是对的吗?

Storm asked 2019-09-11T11:30:34Z
1个解决方案
145 votes

Remove如果已存在该键的值,则不执行任何操作(返回Add)。 Set根据需要进行插入或更新。

Remove + Add会在中间留下间隙,当查询该密钥的另一个线程没有得到任何线索时(Set没有;交换通常是原子的); 因此,虽然Set具有与Remove + Add相同的最终结果,但机制差异很重要,因为它可能影响其他呼叫者。

例如Add:

回报价值

类型:System.Boolean如果插入成功则为true;如果缓存中已存在与key具有相同键的条目,则为false。

Marc Gravell answered 2019-09-11T11:31:11Z
translate from https://stackoverflow.com:/questions/8868486/whats-the-difference-between-memorycache-add-and-memorycache-set