前段时间去一家公司面试,面试官问到我对缓存了解多少,因为我是做B/S开发的,所以把知道的都说了。比如:Application、Cache、页面缓存、文件缓存。然后面试官说“不止这些,还有呢?”,我后来想了想说“以前在做PHP开发的时候有memcache,不知道.NET里面有没有?”。然后那面试官突然接过话来说:“对呀,有空自己看下。”。哈,然后我今天才有空看。

1、下载memcached,我下载的是memcached-win32-1.4.4-14,然后就是安装,安装过程如下:

  A、在 C:\Program Files 建立一个 memcached 目录,将解压缩的文件拷贝到此目录

  B、在命令窗口执行:"C:\Program Files\memcached\memcached.exe" -d install

  C、在命令窗口执行:"C:\Program Files\memcached\memcached.exe" -d start

  这样算是安装成功了,完了看下服务(直接命令里面:services.msc)里面有没有memcache,是否已启动。下载地址:http://www.jb51.net/softs/44843.html

2、下载Memcached Providers 1.2,解压缩。下载地址:http://memcachedproviders.codeplex.com/releases/view/10468

3、新建一项目,将第2步解压缩之后的文件夹里面的Enyim.Caching.dll和MemcachedProviders.dll添加到引用。

  说明:这两个DLL都可以用来管理缓存,我测试了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using MemcachedProviders.Cache;
using Enyim.Caching;
using Enyim.Caching.Memcached;
using System.Text;

namespace test
{
    public partial class Index : System.Web.UI.Page
    {
        //private static MemcachedClient client = new MemcachedClient("enyim.com/memcached");  

        protected void Page_Load(object sender, EventArgs e)
        {
            //DistCache.Add("test", "hello,memcache");
            //Object result = DistCache.Get("test");
            //Response.Write(result.ToString());

            Enyim.Caching.MemcachedClient mc = new Enyim.Caching.MemcachedClient();
            mc.Store(StoreMode.Add, "h", "HI");
            mc.Append("h", this.StringToByte("很好", Encoding.UTF8));
            //mc.Remove("h");
            Response.Write(mc.Get("h"));
        }


        private Byte[] StringToByte(String s, Encoding encoding)
        {
            return encoding.GetBytes(s);
        }
        private String ByteToString(Byte[] b, Encoding encoding)
        {
            return encoding.GetString(b);
        }
    }
}
View Code

相关文章: