Memcached帮助类
一.如果用官方提供的方法,在web.config里面配置好了各个参数和服务器IP
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/>
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<enyim.com>
<memcached protocol="Text">
<servers>
<add address="127.0.0.1" port="" />
<add address="127.0.0.1" port="" />
<add address="127.0.0.1" port="" />
<add address="127.0.0.1" port="" />
</servers>
<socketPool minPoolSize="" maxPoolSize="" connectionTimeout="00:00:05" deadTimeout="00:02:00" />
</memcached>
</enyim.com>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
</configuration>
则使用该通用类即可,组件自动调用web.config里面的配置。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Enyim.Caching;
using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;
/// <summary>
/// MemberHelper 的摘要说明
/// </summary>
public abstract class MemberHelper
{
public MemberHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region 添加缓存
/// <summary>
/// 添加缓存(键不存在则添加,存在则替换)
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <returns></returns>
public static bool AddCache(string key, object value)
{
using (MemcachedClient mc = new MemcachedClient())
{
return mc.Store(StoreMode.Set, key, value);
}
}
#endregion
#region 添加缓存
/// <summary>
/// 添加缓存(键不存在则添加,存在则替换)
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="minutes">缓存时间(分钟)</param>
/// <returns></returns>
public static bool AddCache(string key, object value, int minutes)
{
using (MemcachedClient mc = new MemcachedClient())
{
return mc.Store(StoreMode.Set, key, value, DateTime.Now.AddMinutes(minutes));
}
}
#endregion
#region 获取缓存
/// <summary>
/// 获取缓存
/// </summary>
/// <param name="key">键</param>
/// <returns>返回缓存,没有找到则返回null</returns>
public static object GetCache(string key)
{
using (MemcachedClient mc = new MemcachedClient())
{
return mc.Get(key);
}
}
#endregion
#region 是否存在该缓存
/// <summary>
/// 是否存在该缓存
/// </summary>
/// <param name="key">键</param>
/// <returns></returns>
public static bool IsExists(string key)
{
using (MemcachedClient mc = new MemcachedClient())
{
return mc.Get(key) != null;
}
}
#endregion
#region 删除缓存(如果键不存在,则返回false)
/// <summary>
/// 删除缓存(如果键不存在,则返回false)
/// </summary>
/// <param name="key">键</param>
/// <returns>成功:true失败:false</returns>
public static bool DelCache(string key)
{
using (MemcachedClient mc = new MemcachedClient())
{
return mc.Remove(key);
}
}
#endregion
#region 清空缓存
/// <summary>
/// 清空缓存
/// </summary>
public static void FlushCache()
{
using (MemcachedClient mc = new MemcachedClient())
{
mc.FlushAll();
}
}
#endregion
}
二.如果不想在web.config配置,那就使用下面的通用类。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web;
using Enyim.Caching;
using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;
/// <summary>
/// MemberHelper 的摘要说明
/// </summary>
public abstract class MemberHelper
{
public MemberHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region 创建Memcache客户端
/// <summary>
/// 创建Memcache客户端
/// </summary>
/// <param name="serverList">服务列表</param>
/// <returns></returns>
private static MemcachedClient CreateServer(List<IPEndPoint> serverList)
{
MemcachedClientConfiguration config = new MemcachedClientConfiguration();//创建配置参数
for (int i = ; i < serverList.Count; i++)
{
config.Servers.Add(new System.Net.IPEndPoint(IPAddress.Parse(serverList[i].Address.ToString()), serverList[i].Port));//增加服务节点
}
config.Protocol = MemcachedProtocol.Text;
config.Authentication.Type = typeof(PlainTextAuthenticator);//设置验证模式
config.Authentication.Parameters["userName"] = "uid";//用户名参数
config.Authentication.Parameters["password"] = "pwd";//密码参数
MemcachedClient mac = new MemcachedClient(config);//创建客户端
return mac;
}
#endregion
#region 添加缓存
/// <summary>
/// 添加缓存(键不存在则添加,存在则替换)
/// </summary>
/// <param name="serverList">服务器列表</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <returns></returns>
public static bool AddCache(List<IPEndPoint> serverList, string key, object value)
{
using (MemcachedClient mc = CreateServer(serverList))
{
return mc.Store(StoreMode.Set, key, value);
}
}
#endregion
#region 添加缓存
/// <summary>
/// 添加缓存(键不存在则添加,存在则替换)
/// </summary>
/// <param name="serverList">服务器列表</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="minutes">缓存时间(分钟)</param>
/// <returns></returns>
public static bool AddCache(List<IPEndPoint> serverList,string key, object value, int minutes)
{
using (MemcachedClient mc = CreateServer(serverList))
{
return mc.Store(StoreMode.Set, key, value, DateTime.Now.AddMinutes(minutes));
}
}
#endregion
#region 获取缓存
/// <summary>
/// 获取缓存
/// </summary>
/// <param name="serverList">服务器列表</param>
/// <param name="key">键</param>
/// <returns>返回缓存,没有找到则返回null</returns>
public static object GetCache(List<IPEndPoint> serverList,string key)
{
using (MemcachedClient mc = CreateServer(serverList))
{
return mc.Get(key);
}
}
#endregion
#region 是否存在该缓存
/// <summary>
/// 是否存在该缓存
/// </summary>
/// <param name="serverList">服务器列表</param>
/// <param name="key">键</param>
/// <returns></returns>
public static bool IsExists(List<IPEndPoint> serverList,string key)
{
using (MemcachedClient mc = CreateServer(serverList))
{
return mc.Get(key) != null;
}
}
#endregion
#region 删除缓存(如果键不存在,则返回false)
/// <summary>
/// 删除缓存(如果键不存在,则返回false)
/// </summary>
/// <param name="serverList">服务器列表</param>
/// <param name="key">键</param>
/// <returns>成功:true失败:false</returns>
public static bool DelCache(List<IPEndPoint> serverList, string key)
{
using (MemcachedClient mc = CreateServer(serverList))
{
return mc.Remove(key);
}
}
#endregion
#region 清空缓存
/// <summary>
/// 清空缓存
/// </summary>
/// <param name="serverList">服务器列表</param>
public static void FlushCache(List<IPEndPoint> serverList)
{
using (MemcachedClient mc = CreateServer(serverList))
{
mc.FlushAll();
}
}
#endregion
}
Memcached帮助类的更多相关文章
- Memcached通用类(基于Memcached Client Library)
分享下自己编写的Memcached通用类.欢迎大家帮忙指点下哈~ 使用的是.NET memcached client library 客户端+Memcached Providers using Sys ...
- Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用
1 修改pom.xml,添加依赖文件: <dependency> <groupId>com.whalin</groupId> <artifactId&g ...
- Memcached通用类(基于enyim.com Memcached Client)
一.如果用官方提供的方法,在web.config里面配置好了各个参数和服务器IP.如下图: <?xml version="1.0"?> <configuratio ...
- C#操作Memcached帮助类
在VS中安装Memcached,直接在NuGet下搜索Memcached,选择第一个进行安装: 服务端资源下载地址:https://pan.baidu.com/s/1gf3tupl 接下来开始写程序, ...
- [转]C#操作Memcached帮助类
在VS中安装Memcached,直接在NuGet下搜索Memcached,选择第一个进行安装: 服务端资源下载地址:https://pan.baidu.com/s/1gf3tupl 接下来开始写程序, ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
- .NET中MemCached使用介绍
阅读目录 1.MemCached是什么? 2.Window中MemCached安装 3.MemCached命令 4.简单示例 MemCached是什么 MemCached是一个自由开源,高性能,分布式 ...
- 谈谈Memcached与Redis
1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器.其本质上就是一个 ...
随机推荐
- MongoDB学习(翻译2)
C#驱动之LINQ教程 介绍 本教程涵盖了1.8发布版本对linq查询的支持. 开始本教程之前,你应该至少阅读下C#驱动教程关于C#驱动的介绍 快速开始 首先,添加下面命名空间到您的程序中: usin ...
- ios学习笔记(二)之Objective-C类、继承、类别和协议
二:Objective-C类与继承和协议 在前面已经提过了对象的初始化,这里首先讲的是变量. 2.1 变量 局部变量(内部变量): 局部变量是在方法内作定义说明的,其作用域仅限于方法内,离开方法后使用 ...
- T-SQL编程的基本语法和思想
通过一个很实用的例子让你学会T-SQL编程的基本语法和思想 例子需求:把Execl中的三级分类(列别的三级联动)数据导入到数据库中. Excel表中数据的显示格式: 图1 数据库中表的显示格式: ...
- hdu 2859 (二维dp)
点击打开链接 题意: 给你一个n*n的矩阵,矩阵中只含有26个小写字母,求其中最大的对称矩阵的大小 当我们算到s[i][j]时,每次我们只需要将它上方的和右方的依次比较,看是否相同 注意这里不能只比较 ...
- SQLsever2008 远程连接错误 linq
如果你也和我一样远程连接一个sqlsever2008数据时出现类似错误 SqlException (0x80131904): 用户 ‘xxxxx' 登录失败. 首先在“服务器资源管理器”中测试一下你的 ...
- VMwarevSphere 服务器虚拟化之二十九 桌面虚拟化之安装View副本服务器
VMwarevSphere 服务器虚拟化之二十九 桌面虚拟化之安装View副本服务器 VMware View中高可用性可是一个必须要考虑的问题.在整个虚拟桌面环境中View Connection S ...
- WIN7操作平台获取管理员权限批处理
在WIN7操作平台打开某些文件,如果需要管理员权限才能打开.通过下面的操作就可以获取管理员权限 创建批处理register文件.文件内容为,文件后缀名为.reg.然后双击该文件.打开需要访问的文件,如 ...
- SQL 两表关联查询 where 条件中等号两端字段顺序对效率的影响
现有两表A(大).B(小)作关联查询,SQL语句如下: SQL1:select * from A,B where A.id = B.id SQL2:select * from A,B where B. ...
- oracle——用户
新增用户 用system用户登录 CREATE USER TEST1 IDENTIFIED BY TEST1; CREATE USER:创建用户命令,后跟用户名: IDENTIFIED BY:后跟密码 ...
- IOS GCD使用实例大全
GCD是大家在IOS开发过程中经常使用的一种多线程管理机制.原理这里就不多说了,大家关心的大部分都是它的使用,下面主要介绍GCD的主要方法及其实例. 1.认识主队列,感受串行队列的运行,运行结果打印的 ...