C#Memcached缓存用法实例详解
本文实例讲述了C#中Memcached缓存的用法,分享给大家供大家参考。具体方法如下:
ICacheStrategy.cs文件如下:
{
///<summary>
///添加数据到缓存
///</summary>
///<paramname="objId">缓存名称</param>
///<paramname="o">缓存内容</param>
///<paramname="second">缓存时间(秒)</param>
voidAdd(stringobjId,objecto,intsecond);
///<summary>
///添加数据到缓存(依赖其它缓存)
///</summary>
///<paramname="objId">缓存名称</param>
///<paramname="o">缓存内容</param>
///<paramname="second">缓存时间(秒)</param>
///<paramname="dependKey">依赖缓存名称数组</param>
voidAddCacheDepend(stringobjId,objecto,intsecond,string[]dependKey);
///<summary>
///添加数据到缓存(依赖文件)
///</summary>
///<paramname="objId">缓存名称</param>
///<paramname="o">缓存内容</param>
///<paramname="second">缓存时间(秒)</param>
///<paramname="files">依赖缓存名称文件名数组</param>
voidAddFileDepend(stringobjId,objecto,intsecond,string[]files);
///<summary>
///删除指定缓存
///</summary>
///<paramname="objId"></param>
voidRemoveCache(stringobjId);
///<summary>
///删除所有缓存
///</summary>
voidRemoveCacheAll();
///<summary>
///删除匹配到的缓存
///</summary>
///<paramname="pattern"></param>
///<returns></returns>
voidRemoveCacheRegex(stringpattern);
///<summary>
///获取所有缓存键
///</summary>
///<returns></returns>
IList<string>GetCacheKeys();
///<summary>
///搜索匹配到的缓存
///</summary>
///<paramname="pattern"></param>
///<returns></returns>
IList<string>SearchCacheRegex(stringpattern);
///<summary>
///获得缓存数据
///</summary>
///<paramname="objId"></param>
///<returns></returns>
objectGetCacheData(stringobjId);
///<summary>
///判断此缓存是否有效
///</summary>
///<paramname="objID"></param>
///<returns></returns>
boolHasCache(stringobjID);
}
MemcachedStrategy.cs文件如下:
{
#regionICacheStrategy成员
///<summary>
///添加数据到缓存
///</summary>
///<paramname="objId">缓存名称</param>
///<paramname="o">缓存内容</param>
///<paramname="second">缓存时间(秒)</param>
publicvoidAdd(stringobjId,objecto,intsecond)
{
if(second>0)
{
MemcachedManager.CacheClient.Set(objId,o,DateTime.Now.AddSeconds(second));
}
else
{
MemcachedManager.CacheClient.Set(objId,o);
}
}
#region缓存依赖没有用到memcached
///<summary>
///添加数据到缓存(依赖其它缓存)
///</summary>
///<paramname="objId">缓存名称</param>
///<paramname="o">缓存内容</param>
///<paramname="second">缓存时间(秒)</param>
///<paramname="dependKey">依赖缓存名称数组</param>
publicvoidAddCacheDepend(stringobjId,objecto,intsecond,string[]dependKey)
{
CacheDependencydependencies=newCacheDependency(null,dependKey,DateTime.Now);
HttpRuntime.Cache.Insert(objId,o,dependencies,DateTime.Now.AddSeconds((double)second),Cache.NoSlidingExpiration,CacheItemPriority.Default,null);
}
///<summary>
///添加数据到缓存(依赖文件)
///</summary>
///<paramname="objId">缓存名称</param>
///<paramname="o">缓存内容</param>
///<paramname="second">缓存时间(秒)</param>
///<paramname="files">依赖缓存名称文件名数组</param>
publicvoidAddFileDepend(stringobjId,objecto,intsecond,string[]files)
{
CacheDependencydependencies=newCacheDependency(files,DateTime.Now);
HttpRuntime.Cache.Insert(objId,o,dependencies,DateTime.Now.AddSeconds((double)second),Cache.NoSlidingExpiration,CacheItemPriority.Default,null);
}
#endregion
///<summary>
///删除指定缓存
///</summary>
///<paramname="objId"></param>
publicvoidRemoveCache(stringobjId)
{
if(MemcachedManager.CacheClient.KeyExists(objId))
MemcachedManager.CacheClient.Delete(objId);
}
///<summary>
///删除所有缓存
///</summary>
publicvoidRemoveCacheAll()
{
MemcachedManager.CacheClient.FlushAll();
}
///<summary>
///删除匹配到的缓存
///</summary>
///<paramname="pattern"></param>
publicvoidRemoveCacheRegex(stringpattern)
{
IList<string>list=SearchCacheRegex(pattern);
foreach(variteminlist)
{
MemcachedManager.CacheClient.Delete(item);
}
}
///<summary>
///获取所有缓存键
///</summary>
///<returns></returns>
publicIList<string>GetCacheKeys()
{
returnMemcachedManager.GetAllKeys();
}
///<summary>
///搜索匹配到的缓存
///</summary>
///<paramname="pattern"></param>
///<returns></returns>
publicIList<string>SearchCacheRegex(stringpattern)
{
List<string>l=newList<string>();
IList<string>cacheKeys=MemcachedManager.GetAllKeys();
foreach(varitemincacheKeys)
{
if(Regex.IsMatch(item,pattern))
{
l.Add(item);
}
}
returnl.AsReadOnly();
}
///<summary>
///获得缓存数据
///</summary>
///<paramname="objId"></param>
///<returns></returns>
publicobjectGetCacheData(stringobjId)
{
returnMemcachedManager.CacheClient.Get(objId);
}
///<summary>
///判断此缓存是否有效
///</summary>
///<paramname="objID"></param>
///<returns></returns>
publicboolHasCache(stringobjID)
{
returnMemcachedManager.CacheClient.KeyExists(objID);
}
#endregion
}
希望本文所述对大家的C#程序设计有所帮助。
相关文章
- C#中File和FileStream的用法
- 【Unity3D】Unity 中使用 C# 调用 Java ① ( Android Studio 模块准备 | 编译 Android 模块拿到字节码文件 | 拷贝字节码到 Unity 编辑器 )
- c#常用正则表达式,验证邮箱,Url,电话号码等详解编程语言
- C#使用正则表达式实例
- c#读取文件内容存放到int数组array.txt
- C#TreeView控件使用代码
- C#中38个常用运算符的优先级的划分和理解
- C#绝对路径拼接相对路径的实例代码
- C#解析json文件的实现代码
- C#垃圾回收机制的详细介绍
- c#高效比对大量图片的实例代码
- C#测量程序运行时间及cpu使用时间实例方法
- C#使用MailAddress类发送html格式邮件的实例代码
- C#四舍五入(函数)用法实例
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- C#中Linq查询基本操作使用实例
- C#Ini文件操作实例
- c#实现把汉字转为带田字格背景的jpg图片
- C#实现GZip压缩和解压缩入门实例
- c#图像截取实例
- C#中is与as的区别分析
- C#判断字符串是否存在字母及字符串中字符的替换实例
- C#获取文件夹及文件的大小与占用空间的方法
- 基于C#实现的端口扫描器实例代码
- C#实现绘制浮雕图片效果实例
- C#中sizeof的用法实例分析
- C#利用Openxml读取Excel数据实例