天天看點

我在試驗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,如需轉載請自行聯系原作者

繼續閱讀