为了优化系统的加载速度,在类库里实现缓存效果,又不想安装memoryCache扩展,我用static的Hashtable实现简单的缓存功能。
没实现到期自动清除,但请求时会判定缓存是否过期,所以已经能满足大部分应用场景了。
由于比较简单就不多说,代码注释都没有,原码如下:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace AK.WordsFilter.Models
{
public class MyCache
{
static Hashtable MemCache = new Hashtable();
public void Set<TItem>(object key, TItem value, int seconds)
{
var absoluteExpiration = DateTimeOffset.UtcNow.AddSeconds(seconds);
Set<TItem>(key, value, absoluteExpiration);
}
public void Set<TItem>(object key, TItem value, TimeSpan absoluteExpirationRelativeToNow)
{
var absoluteExpiration = DateTimeOffset.UtcNow.Add(absoluteExpirationRelativeToNow);
Set<TItem>(key, value, absoluteExpiration);
}
public void