分布式缓存BeIT Memcached简介

或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步。
下面稍微介绍一下beitmemcached对于.net的支持,官方参考
http://code.google.com/p/beitmemcached/

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

8、解压BeITMemcached_source_2008_05_31.zip,它是.net 2.0开发的客户端,里面是全部源代码和一个调用示例。
9、用对应版本的vss打开项目,如果感兴趣就慢慢研究代码,不感兴趣就选择生成类库,编译一个BeITMemcached.dll出来。
10、新建一个控制台程序,引用BeITMemcached.dll,输入类似代码测试

using System;
using BeIT.MemCached;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
MemcachedClient.Setup("TestCache", new string[] { "192.168.0.1" });
MemcachedClient cache = MemcachedClient.GetInstance("TestCache");
cache.SendReceieveTimeout = 5000;
cache.MinPoolSize = 1;
cache.MaxPoolSize = 5;
cache.Set("jinjazz", "剪刀");
object obj = cache.Get("jinjazz");
Console.WriteLine(obj);
Console.Read();
}
}
}

一个分布式缓存的例子就这么简单,和操作hashtable基本上一样容易。

11、查看缓存运行状态,这个你需要熟悉一些memcached的基本命令
先在你机器上输入telnet 192.168.0.1 11211,进入telnet
摸黑输入stats,会出来如下结果,可能对你有用的我后面加了注释
STAT pid 2928
STAT uptime 139279
STAT time 1216258406
STAT version 1.2.5
STAT pointer_size 32
STAT curr_items 4
STAT total_items 6
STAT bytes 1052947
STAT curr_connections 2
STAT total_connections 10
STAT connection_structures 4
STAT cmd_get 13  //读取13次
STAT cmd_set 6  //设置6次
STAT get_hits 11 //11次命中
STAT get_misses 2 //2次失败
STAT evictions 0
STAT bytes_read 1053321
STAT bytes_written 6279461
STAT limit_maxbytes 67108864
STAT threads 1
END
 
12、结束。