Memcached通用类(基于Memcached Client Library)
来源:互联网 发布:游聚网络对战平台 编辑:程序博客网 时间:2024/06/06 14:18
分享下自己编写的Memcached通用类。欢迎大家帮忙指点下哈~
使用的是.NET memcached client library 客户端+Memcached Providers
using System;using System.Collections;using System.Collections.Generic;using System.Text;using Memcached.ClientLibrary;namespace KOC.Common.DataAccess{ /// <summary> /// Memcache通用类 /// </summary> public abstract class MemberHelper { #region 创建Memcache服务 /// <summary> /// 创建Memcache服务 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">Socket连接池名称</param> /// <returns>Memcache客户端代理类</returns> private static MemcachedClient CreateServer(ArrayList serverlist, string poolName) { //初始化memcache服务器池 SockIOPool pool = SockIOPool.GetInstance(poolName); //设置Memcache池连接点服务器端。 pool.SetServers(serverlist); pool.Initialize(); //其他参数根据需要进行配置 //创建了一个Memcache客户端的代理类。 MemcachedClient mc = new MemcachedClient(); mc.PoolName = poolName; mc.EnableCompression = false;//是否压缩 return mc; } #endregion #region 缓存是否存在 /// <summary> /// 缓存是否存在 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="key">键</param> /// <returns></returns> public static bool CacheIsExists(ArrayList serverlist, string poolName, string key) { MemcachedClient mc = CreateServer(serverlist, poolName); if (mc.KeyExists(key)) { return true; } else { return false; } } #endregion #region 添加缓存 #region 添加缓存(键不存在则添加,键存在则不能添加) /// <summary> /// 添加缓存(键不存在则添加,键存在则不能添加) /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="minutes">过期分钟数</param> /// <returns></returns> public static bool AddCache(ArrayList serverlist, string poolName, string key, string value, int minutes) { MemcachedClient mc = CreateServer(serverlist, poolName); return mc.Add(key, value, DateTime.Now.AddMinutes(minutes)); } #endregion #region 添加缓存(键不存在则添加,键存在则覆盖) /// <summary> /// 添加缓存(键不存在则添加,键存在则覆盖) /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="minutes">过期分钟数</param> /// <returns></returns> public static bool SetCache(ArrayList serverlist, string poolName, string key, string value, int minutes) { MemcachedClient mc = CreateServer(serverlist, poolName); return mc.Set(key, value, DateTime.Now.AddMinutes(minutes)); } #endregion #endregion #region 替换缓存 #region 替换缓存(键存在的才能替换,不存在则不替换) /// <summary> /// 替换缓存(键存在的才能替换,不存在则不替换) /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="minutes">过期分钟数</param> /// <returns></returns> public static bool ReplaceCache(ArrayList serverlist, string poolName, string key, string value, int minutes) { MemcachedClient mc = CreateServer(serverlist, poolName); return mc.Replace(key, value, DateTime.Now.AddMinutes(minutes)); } #endregion #endregion #region 获取缓存 #region 获取单个键对应的缓存 /// <summary> /// 获取单个键对应的缓存 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="key">键</param> /// <returns></returns> public static object GetCache(ArrayList serverlist, string poolName, string key) { MemcachedClient mc = CreateServer(serverlist, poolName); if (mc.KeyExists(key)) { return mc.Get(key); } else { return ""; } } #endregion #region 获取键数组对应的值 /// <summary> /// 获取键数组对应的值 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="keys">键列表</param> /// <returns>Hashtable键值对</returns> public static Hashtable GetCacheHt(ArrayList serverlist, string poolName, string[] keys) { MemcachedClient mc = CreateServer(serverlist, poolName); return mc.GetMultiple(keys); } #endregion #region 获取键数组对应的值 /// <summary> /// 获取键数组对应的值 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="keys">键列表</param> /// <returns>值的数组(不包含键)</returns> public static object[] GetCacheList(ArrayList serverlist, string poolName, string[] keys) { MemcachedClient mc = CreateServer(serverlist, poolName); object[] list = mc.GetMultipleArray(keys); ArrayList returnList = new ArrayList(); for (int i = 0; i < list.Length; i++) { if (list[i] != null) { returnList.Add(list[i]); } } return returnList.ToArray(); } #endregion #endregion #region 删除缓存 /// <summary> /// 删除缓存 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <param name="key">键</param> /// <returns></returns> public static bool DelCache(ArrayList serverlist, string poolName, string key) { MemcachedClient mc = CreateServer(serverlist, poolName); return mc.Delete(key); } #endregion #region 清空所有缓存 /// <summary> /// 清空所有缓存 /// </summary> /// <param name="serverlist">IP端口列表</param> /// <param name="poolName">连接池名称</param> /// <returns></returns> public static bool FlushAll(ArrayList serverlist, string poolName) { MemcachedClient mc = CreateServer(serverlist, poolName); return mc.FlushAll(); } #endregion }}
转自:http://www.cnblogs.com/qixuejia/archive/2013/07/02/3167986.html
0 0
- Memcached通用类(基于Memcached Client Library)
- Memcached的.NET客户端(一)【.NET Memcached Client Library使用】
- memcached-client
- .NET memcached client library性能优化(一)
- memcached client -- memcached client for java使用
- memcached client -- memcached client for java使用
- memcached client -- memcached client for java使用
- memcached client -- spymemcached使用
- Memcached-Java-Client
- Memcached Java Client API
- memcached java Client学习
- memcached-client操作
- Memcached Client 使用手册
- memcached java client
- memcached java client API
- 二 Memcached Client
- Memcached Client简要介绍
- Memcached Client Forjava API
- Android签名机制:生成keystore、签名、查看签名信息
- Xamarin.android打包发布(vs205)
- 按line读取到文件中
- memcached安装及.NET中的Memcached.ClientLibrary使用详解
- Linux各个文件夹的作用
- Memcached通用类(基于Memcached Client Library)
- HTTP协议详解
- SQL Server 2008 多维数据集增加度量值计算平均值
- 如何找到安卓的密钥的md5、sha1签名
- Lambda表达式详解
- Java初级程序员面试必备的基础知识总结
- Linux 下 Redis 安装详解
- ServiceStack.Redis 使用教程
- 《javascript pattern》要点概括