⑴性能:缓存通过存储和消费者最相关的数据,可以提升应用的性能避免了重复的数据创建、处理和传输。
⑵可扩展性:在缓存中存储资源帮助节省资源,在有增加应用的需要的情况下提高可扩展性。
⑶可获得性:在本地存储数据,应用在网络发生现在问题、Web Service发生问题、硬件发生问题的情况下,应用还是可以生成下来,可以继续使用。
缓存的常用方法:
1、Add() 想缓存添加数据 使用CacheManager的Add方法,如果你没有设置过期时间和有限级,会自动设置默认值,分别是NeverExpired(永不过期)和Normal(正常)。
2、Remove() 从缓存中删除数据 Remove(key)。
3、GetData() 从缓存中获取数据 GetData(key)。
4、Flush() 清空缓存。
属性配置:
1、设置ExpirationPollFrequencyInSeconds属性,这个属性代表每隔多长时间检查一次缓存是否有过期项目,已s为单位,最小时间间隔是1s,默认值是60s。
2、设置MaxiumnElementsInCacheBeforeScavenging属性,这个属性代表可以在缓存中存放的数据个数的最大值,默认是1000。
3、设置NumberToRemoveWhenScavenging属性,代表在一次过期扫描之后,会有多少个项目从缓存中移除,默认一次移除10个。
//创建CacheManager缓存对象
private CacheManager cacheManager = (CacheManager) CacheFactory.GetCacheManager();
private string str1 = "Welcome to study Enterprise Library !";
/// <summary>
/// 通过Add()方法向缓存中添加数据,设置优先级为Nomarl,过期之后没有激活任何事件,过期时间为最后一次访问之后的5min。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAddCach_Click(object sender, EventArgs e)
{
cacheManager.Add("MyCaching",str1,CacheItemPriority.Normal, null,new SlidingTime(TimeSpan.FromMinutes(5)));
lblText.Text = "已经成功地把数据添加到缓存中!";
}
/// <summary>
/// 通过GetData()方法读取缓存中的数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnReadCac_Click(object sender, EventArgs e)
{
string str2 = (string) cacheManager.GetData("MyCaching");
lblText.Text = str2;
}
//通过Remove()方法删除缓存中的数据
private void btnRemoveCac_Click(object sender, EventArgs e)
{
cacheManager.Remove("MyCaching");
string str2 = (string)cacheManager.GetData("MyCaching");
lblText.Text = str2;
}