或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步。
下面稍微介绍一下beitmemcached对于.net的支持,官方参考一个完整的操作步骤:
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