在.NET Core上的MemoryCache中更新List <T>

时间:2019-07-11 01:29:29

标签: c# memorycache

我需要在MemoryCache中存储和更新列表。每次点击我的WEB.API的事务都会向该列表添加一条记录,并且每1分钟,该列表将被转储到数据库中并从缓存中删除。

我的问题是并发,避免脏读/写。我还需要非常快地写入此列表,这样我的交易才不会延迟。

// get list in cache
List<MyObj> stat = cache.Get<List<MyObj>>(key);

if (stat == null)
  stat = new List<MyObj>() { new MyObj() { SomeKey = SomeVal } };
else
  stat.Add(new MyObj() { SomeKey = SomeVal });

// by this time another thread could modify the cached object, so my current object is not good anymore
cache.Set<List<MyObj>>(key, stat);

0 个答案:

没有答案