一个缓存的类 包含了缓存的增删改查

public class BSCache
{
///<summary>
/// 插入缓存
/// 过期后将不能被访问到。如果缓存中有同样的对象将覆盖原有的缓存。
///</summary>
/// <param name="key">标识</param>
/// <param name="obj">对象</param>
/// <param name="days">过期时间 单位(天)</param>
/// <param name="cip">优先级 可选参数,调用的时候可以忽略这个参数 当内存不足时会优先清除级别低的缓存</param>
/// <returns>返回成功(true)或者失败(false)</returns>
public static bool Insert(string key, object obj, int days, CacheItemPriority cip = CacheItemPriority.Default)
{ // 键 值 过期时间


if (key != null && !key.Equals("") && obj != null)
{
CacheItemRemovedCallback callBack = new CacheItemRemovedCallback(onRemove);
// 键 值 依赖项 过期时间 可调过期时间 优先级别 清除时调用的委托
HttpRuntime.Cache.Insert(key, obj, null, System.DateTime.Now.AddDays(days),System.Web.Caching.Cache.NoSlidingExpiration, cip,callBack);
//可调过期时间 例如设置10分钟 这访问后10分钟若无访问则过期
//依赖性 可指定一个文件 方法 值 数据库中的数据 等作为依赖项 当这个依赖项发生改变时该缓存过期
//委托可在清除时调用的方法重新缓存 当内存不足时会优先清除优先级低的缓存对象
return true;
}
else
{
return false;
}
}
///<summary>
/// 插入缓存
/// 过期后将不能被访问到。如果缓存中有同样的对象将覆盖原有的缓存。
///</summary>
/// <param name="key">标识</param>
/// <param name="obj">对象</param>
/// <param name="minutes">过期时间 单位(分钟)</param>
/// <param name="cip">优先级</param>
/// <returns>返回成功(true)或者失败(false)</returns>
public static bool Insert(string key, object obj, int minutes,CacheItemRemovedCallback crc, CacheItemPriority cip = CacheItemPriority.Default)
{
if (key != null && !key.Equals("") && obj != null)
{
if (crc == null)
{
HttpRuntime.Cache.Insert(key, obj, null, System.DateTime.Now.AddMinutes(minutes), System.Web.Caching.Cache.NoSlidingExpiration);
}
else
{
HttpRuntime.Cache.Insert(key, obj, null, System.DateTime.Now.AddMinutes(minutes), System.Web.Caching.Cache.NoSlidingExpiration, cip, crc);
}
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断缓存是否还存在
/// 如果缓存过期将视为不存在。
/// </summary>
/// <param name="key">标识</param>
/// <returns>存在或者不存在</returns>
public static bool ExistCache(string key)
{
if (key != null && !key.Trim().Equals(""))
{
if (HttpRuntime.Cache[key] != null)
{
return true;
}
}
return false;
}
/// <summary>
/// 获得缓存
/// </summary>
/// <param name="key">标识</param>
/// <returns>缓存对象</returns>
public static object GetCache(string key)
{
object obj = null;
if (key != null && !key.Trim().Equals(""))
{
if (HttpRuntime.Cache[key] != null)
{
obj = HttpRuntime.Cache[key];
}
}
return obj;
}
/// <summary>
/// 移除缓存对象
/// </summary>
/// <param name="key">key</param>
/// <returns>返回移除成功(True)</returns>
public static bool RemoveCache(string key)
{
if (key != null && !key.Trim().Equals(""))
{
if (HttpRuntime.Cache[key] != null)
{
HttpRuntime.Cache.Remove(key);
}
}
return true;
}
/// <summary>
/// 此方法在值失效之前调用,可以用于在失效之前更新数据库,或从数据库重新获取数据
/// </summary>
/// <param name="key">key</param>
/// <param name="obj">对象</param>
/// <param name="reason">移除的原因</param>
private static void onRemove(string key, object obj, CacheItemRemovedReason reason)
{
string key2 = key;
object obj2 = obj;
//CacheItemRemovedReason crr = reason;//移除或过期
}
/// <summary>
/// 获得基站缓存值
/// </summary>
/// <param name="keys">缓存名称(基站标识)</param>
/// <returns></returns>
public static List<ArrayList> Get(string[] keys)
{
List<ArrayList> al = new List<ArrayList>();
if (keys != null)
{
foreach (string item in keys)
{
object obj = GetCache(item);//获得缓存对象
if (obj != null)
{
try
{
al.Add((ArrayList)obj);
}
catch { }
}
}
}
return al;
}
}

转载于:https://www.cnblogs.com/Rock-Lee/archive/2013/05/30/3109323.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值