zhouu 发表于 2015-9-1 11:09:20

Memcached 使用

  using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Memcached.ClientLibrary;
using System.Text;
using System.Collections;
using System.Web.Caching;
public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      if (!Page.IsPostBack)
      {
            string[] relatedKeys = new string;
            relatedKeys = "UID";
            LM.Memcached.Cache.Set("UID", 123);
            CacheDependency cd = new CacheDependency(null, relatedKeys);
            LM.Memcached.Cache.Set("abc",DateTime.Now , cd);
      }
      //Cache.Insert("ccc", "adsfasdf");
      //Response.Write(Cache.Get("ccc"));
    }
    public void memcached()
    {
      //分布Memcachedf服务IP 端口
      string[] servers = { "192.168.2.26:11211" };
      //初始化池
      SockIOPool pool = SockIOPool.GetInstance();
      pool.SetServers(servers);
      pool.InitConnections = 3;
      pool.MinConnections = 3;
      pool.MaxConnections = 5;
      pool.SocketConnectTimeout = 1000;
      pool.SocketTimeout = 3000;
      pool.MaintenanceSleep = 30;
      pool.Failover = true;
      pool.Nagle = false;
      pool.Initialize();
      //客户端实例
      MemcachedClient mc = new Memcached.ClientLibrary.MemcachedClient();
      mc.EnableCompression = false;
      StringBuilder sb = new StringBuilder();
      //写入缓存
      sb.AppendLine("写入缓存测试:");
      sb.AppendLine("<br>_______________________________________<br>");
      if (mc.KeyExists("cache"))
      {
            sb.AppendLine("缓存cache已存在");
      }
      else
      {
            mc.Set("cache", "写入缓存时间:" + DateTime.Now.ToString());
            sb.AppendLine("缓存已成功写入到cache");
      }
      sb.AppendLine("<br>_______________________________________<br>");
      sb.AppendLine("读取缓存内容如下:<br>");
      sb.AppendLine(mc.Get("cache").ToString());
      //测试缓存过期
      sb.AppendLine("<br>_______________________________________<br>");
      if (mc.KeyExists("endCache"))
      {
            sb.AppendLine("缓存endCache已存在,过期时间为:" + mc.Get("endCache").ToString());
      }
      else
      {
            mc.Set("endCache", DateTime.Now.AddMinutes(1).ToString(), DateTime.Now.AddMinutes(1));
            sb.AppendLine("缓存已更新写入到endCache,写入时间:" + DateTime.Now.ToString() + " 过期时间:" + DateTime.Now.AddMinutes(1).ToString());
      }
      //分析缓存状态
      Hashtable ht = mc.Stats();
      sb.AppendLine("<br>_______________________________________<br>");
      sb.AppendLine("Memcached Stats:");
      sb.AppendLine("<br>_______________________________________<br>");
      foreach (DictionaryEntry de in ht)
      {
            Hashtable info = (Hashtable)de.Value;
            foreach (DictionaryEntry de2 in info)
            {
                sb.AppendLine(de2.Key.ToString() + ": " + de2.Value.ToString() + "<br>");
            }
      }
      Response.Write(sb.ToString());
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
      LM.Memcached.Cache.Set("UID", 111);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
      if (LM.Memcached.Cache.Get("abc") == null)
      {
            LM.Memcached.Cache.Set("abc", DateTime.Now);
      }
      else
      {
            Response.Write( LM.Memcached.Cache.Get("abc").ToString());
      }
    }
}
页: [1]
查看完整版本: Memcached 使用