我想简单地使用c#
上的缓存我从DB获取了一个对象,我希望在缓存中保存30秒,
所以在这30秒内我不需要再从DB中获取这些信息。
例如:
if(cache("name")== empty)
MyClass temp=GetFromDb();
InsertToCache("name")
else
MyClass temp=selectFromCache("name")
我找不到办法做到这一点。
谢谢大家。
答案 0 :(得分:0)
这是一个类似于你想要完成的例子:
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)。