如何在c#中使用缓存

本文关键字:缓存 | 更新日期: 2023-09-27 18:07:53

我想在c#上使用简单的缓存

我从DB得到一个对象,我想把它保存在缓存上30秒,

所以在这30秒内,我不需要再次从DB获取此信息。

例如:

if(cache("name")== empty)
       MyClass temp=GetFromDb();
        InsertToCache("name")
else
   MyClass temp=selectFromCache("name")

我找不到做这件事的方法。

谢谢大家。

如何在c#中使用缓存

这里有一个类似于您想要完成的示例:

public Person RetrievePerson(string name)
{
    var memoryCache = MemoryCache.Default; // Needs a reference to System.Runtime.Caching
    var person = memoryCache.Get(name) as Person;
    if (person == null)
    {
        person = CreatePerson(name);
        memoryCache.Add(name, person, new CacheItemPolicy
        {
            SlidingExpiration = new TimeSpan(0, 0, 1)
        });
    }
    return person;
}

注意,您需要一个System.Runtime.Caching的引用(参见https://msdn.microsoft.com/en-us/library/wkze6zky.aspx获取帮助)。

有关MemoryCache, CacheItemPolicy等的更多信息,请查看MSDN(例如https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx)。