在.Net C#中使用分布式缓存系统Memcached

或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步。

下面稍微介绍一下beitmemcached对于.net的支持,官方参考http://code.google.com/p/beitmemcached/

调用一个在服务器已经部署好的Memcached的步骤:
1、点击链接http://code.google.com/p/beitmemcached/页面的downloads,把Memcached_1.2.5.zip 和BeITMemcached_source_2008_05_31.zip两个压缩包下在下来。

2、解压BeITMemcached_source_2010_08_04.zip,它是开发的客户端,里面是全部源代码和一个调用示例。
3、用对应版本的vss打开项目,如果感兴趣就慢慢研究代码,不感兴趣就右键属性→选择生成类库,编译一个BeITMemcached.dll出来。

4、在项目中引用BeITMemcached.dll。

5、在项目的配置文件(web.config)中添加节点。如:

<configuration>
  <configSections>
    <section name="beitmemcached" type="System.Configuration.NameValueSectionHandler" />
  </configSections>
  <beitmemcached>
    <!--正式环境-->
    <!--<add key="MyConfigFileCache" value="192.168.30.81:11211" />-->
    <!--测试环境-->
    <add key="MyConfigFileCache" value="10.1.3.203:11211" />
  </beitmemcached>
 </configSections>
</configuration>

6、写缓存:

    ①、添加缓存类  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BeIT.MemCached;
using System.Web.Script.Serialization;

namespace Flight.Web.Models
{
    /// <summary>
    /// 分布式缓存
    /// </summary>
    public class MemcachedService
    {
        public static MemcachedClient cached;


        #region MemCached缓存实例化
        public static void GetMemcachedInstance()
        {
            cached = MemcachedClient.GetInstance("MyConfigFileCache");
            cached.SendReceiveTimeout = 5000;
            cached.ConnectTimeout = 5000;
            cached.MinPoolSize = 1;
            cached.MaxPoolSize = 200;

        }
        #endregion

        #region MemCached缓存判断
        public static T GetFlightsQueryListByCached<T>(string _CacheName)
        {
            var serialize = new JavaScriptSerializer();
            T t = default(T);
            var obj = cached.Get(_CacheName);
            t = serialize.Deserialize<T>(obj == null ? "" : obj.ToString());
            return t;
        }
        #endregion
    }
}
      ②、缓存对象

    

MemcachedService.GetMemcachedInstance();
string cacheName = "FlightsQueryList" + request.departcity + query.arrivecity + request.date;//缓存名称
FlightsRespDTO = MemcachedService.GetFlightsQueryListByCached<FlightsResponse>(cacheName);//FlightsResponse需要缓存的对象
var serialize = new JavaScriptSerializer();
//请求接口
FlightsRespDTO = Common.QueryFlightPost(request);
 MemcachedService.cached.Set(cacheName, obj, new TimeSpan(2, 0, 0));//缓存

Memcached在服务器的部署:

1、解压Memcached_1.2.5.zip ,它是memcached的服务器端。
2、把Memcached_1.2.5复制到你指定的做为缓存服务器的电脑上,比如叫做192.168.0.1。
3、cmd下运行类似命令 'd:\memcached\memcached.exe -d install' 安装服务器端,这时候它应该会出现在windows服务中
4、cmd下运行类似命令 'd:\memcached\memcached.exe -d start'启动服务,看服务器进程中是否有memcached进程。
5、确认服务器端口11211是否开放(防火墙设置中),否则其他机器无法访问
6、服务器端这时已经安装完毕、在其他机器上测试一下,cmd输入telnet 192.168.0.1 11211看能否登录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小步快跑-

如有帮到您,给个赞赏(^.^)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值