C#使用memcached实现缓存

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 Clienthttp://enyimmemcached.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=13095

配置config文件



























这里的port:11211, memcached-1.2.1-win32在安装时默认使用的port.当然你可以用memcached.exe-p端口号来自行设置。

第二步,新建TestMemcachedAppconsole project

引用Enyim.Caching.dll

基础代码如下:

//create a instance ofMemcachedClient
MemcachedClient mc = new MemcachedClient();
// store a string in the cache
mc.Store(StoreMode.Set, "MyKey", "Hello World");
// retrieve the item from the cache
Console.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 justrecreate it every time
MemcachedClient mc = new MemcachedClient();

// store a string in the cache
mc.Store(StoreMode.Set, "MyKey", "Hello World");

// retrieve the item fromthe 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("D5");

// delete them from thecache
mc.Remove("D1");
mc.Remove("D2");
mc.Remove("D3");
mc.Remove("D4");

// add an item which isvalid for 10 mins
mc.Store(StoreMode.Set, "D4", new Product(), new TimeSpan(0, 10, 0));

Console.ReadLine();
}

// objects must beserializable to be able to store them in the cache
[Serializable]
class Product
{
public double Price = 1.24;
public string Name = "Mineral Water";

public override stringToString()
{
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

 

你可能感兴趣的:(memcached)