天天看点

我在试验Memcached,你的项目怎么处理缓存?

充分利用缓存可以大幅提高应用程序性能,之前都是自己写Dictionary字典来做缓存,今天打算尝试一下MemCached。

MemCached使用需要两个部分,一个是服务端,一个是客户端,首先我们将这两个文件下载下来。

<a href="http://files.cnblogs.com/wengyuli/memcached-1.2.4-Win32-Preview-20080309_bin.zip">http://files.cnblogs.com/wengyuli/memcached-1.2.4-Win32-Preview-20080309_bin.zip</a>

<a href="http://files.cnblogs.com/wengyuli/memcacheddotnet_clientlib-1.1.5.zip">http://files.cnblogs.com/wengyuli/memcacheddotnet_clientlib-1.1.5.zip</a>

<a target="_blank" href="http://blog.51cto.com/attachment/201106/183155941.png"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201106/183207133.png"></a>

 按照安装提示,解压到C盘后进行安装

启动

 配置端口 

<a target="_blank" href="http://blog.51cto.com/attachment/201106/183242993.png"></a>

 配置内存大小 

<a target="_blank" href="http://blog.51cto.com/attachment/201106/183252101.png"></a>

 使用TCPVIEWER工具查看MemCached是否正常工作。 

测试

<a target="_blank" href="http://blog.51cto.com/attachment/201106/183321726.png"></a>

 测试代码:

static void Main(string[] args)

        {

            string[] serverlist = { "127.0.0.1:11211", "127.0.0.1:11211" };

            //初?始?化ˉIO池?

            SockIOPool pool = SockIOPool.GetInstance();

            pool.SetServers(serverlist);

            pool.InitConnections = 3;

            pool.MinConnections = 3;

            pool.MaxConnections = 5;

            pool.SocketConnectTimeout = 1000;

            pool.SocketTimeout = 3000;

            pool.MaintenanceSleep = 30;

            pool.Failover = true;

            pool.Nagle = false;

            pool.Initialize();

            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = false;

            Console.Write("开a始?测a试?...");

            mc.Set("name", "wengyuli");

            if (mc.KeyExists("name"))

            {

                Console.Write("存?在ú!?");

                Console.Write(mc.Get("name").ToString());

            }

            else

            {

                Console.Write("不?存?在ú");

            Console.Read();

            mc.Delete("name");

            SockIOPool.GetInstance().Shutdown();//关?闭?池?

        } 

听说效果很好,这个有待测试,稍后将会将测试过程记录一下,希望大家能够多提出几个测试方法,谢谢!

     本文转自wengyuli 51CTO博客,原文链接:http://blog.51cto.com/wengyuli/586685,如需转载请自行联系原作者

继续阅读