1. 下载memcache(http://jehiah.cz/projects/memcached-win32)的windows稳定版http://jehiah.cz/projects/memcached-win32/files/memcached-1.2.1-win32.zip
2. 解压,把memcached.exe放到c:\windows\system32目录下,然后打开命令行窗口输入下面命令
c:
cd \windows\system32
memcached.exe -d install
memcached.exe -d start 该命令启动 Memcached,默认监听端口为 11211
3. 下载 Memcached Client http://enyimmemcached.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=13095
配置config文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><sectionGroup name="enyim.com"><section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" /></sectionGroup><section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" /></configSections><enyim.com><memcached><servers><!-- put your own server(s) here--><add address="127.0.0.1" port="11211" /></servers><socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" /></memcached></enyim.com><memcached keyTransformer="Enyim.Caching.TigerHashTransformer, Enyim.Caching"><servers><add address="127.0.0.1" port="11211" /></servers><socketPool minPoolSize="2" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" /></memcached></configuration>这里的port:11211是, memcached-1.2.1-win32在安装时默认使用的port.当然你可以用memcached.exe -p 端口号来自行设置。第二步, 新建TestMemcachedApp的console project
引用Enyim.Caching.dll
基础代码如下:
//create a instance of MemcachedClient
MemcachedClient mc = new MemcachedClient();// store a string in the cachemc.Store(StoreMode.Set, "MyKey", "Hello World");// retrieve the item from the cacheConsole.WriteLine(mc.Get("MyKey"));完整代码如下,
using System;
using System.Collections.Generic;using System.Text;using Enyim.Caching;using Enyim.Caching.Memcached;using System.Net;using Enyim.Caching.Configuration;namespace DemoApp
{ class Program{ static void Main(string[] args){ // create a MemcachedClient// in your application you can cache the client in a static variable or just recreate it every timeMemcachedClient mc = new MemcachedClient();// store a string in the cachemc.Store(StoreMode.Set, "MyKey", "Hello World");// retrieve the item from the cache
Console.WriteLine(mc.Get("MyKey"));// store some other items
mc.Store(StoreMode.Set, "D1", 1234L);mc.Store(StoreMode.Set, "D2", DateTime.Now);mc.Store(StoreMode.Set, "D3", true);mc.Store(StoreMode.Set, "D4", new Product());mc.Store(StoreMode.Set, "D5", new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
Console.WriteLine("D1: {0}", mc.Get("D1"));Console.WriteLine("D2: {0}", mc.Get("D2"));Console.WriteLine("D3: {0}", mc.Get("D3"));Console.WriteLine("D4: {0}", mc.Get("D4"));byte[] tmp = mc.Get<byte[]>("D5");
// delete them from the cache
mc.Remove("D1");mc.Remove("D2");mc.Remove("D3");mc.Remove("D4");// add an item which is valid for 10 mins
mc.Store(StoreMode.Set, "D4", new Product(), new TimeSpan(0, 10, 0));Console.ReadLine();
}// objects must be serializable to be able to store them in the cache
[Serializable]class Product{ public double Price = 1.24;public string Name = "Mineral Water";public override string ToString()
{ return String.Format("Product { { {0}: {1}}}", this.Name, this.Price);}}}}下载memcached服务安装地址:http://www.danga.com/memcached/
Client API下载地址:http://www.danga.com/memcached/apis.bml