⑴性能:缓存通过存储和消费者最相关的数据,可以提升应用的性能避免了重复的数据创建、处理和传输。

    ⑵可扩展性:在缓存中存储资源帮助节省资源,在有增加应用的需要的情况下提高可扩展性。

    ⑶可获得性:在本地存储数据,应用在网络发生现在问题、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; 

        }