C# MemCached分布式緩存


using System;
using System.Collections.Generic;

using System.Text;

using Memcached.ClientLibrary;
using System.Diagnostics;

namespace TestMemcachedApp
{
    class Program
    {
        [STAThread]
        public static void Main(String[] args)
        {


            System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start(); //  開始監視代碼運行時間

            string[] serverlist = { "192.168.0.107:11211" };//服務器可以是多個

            //初始化池
            SockIOPool pool = SockIOPool.GetInstance();
            pool.SetServers(serverlist);//設置連接池可用的cache服務器列表,server的構成形式是IP:PORT(如:127.0.0.1:11211)
            pool.InitConnections = 3;//初始連接數
            pool.MinConnections = 3;//最小連接數
            pool.MaxConnections = 5;//最大連接數
            pool.SocketConnectTimeout = 1000;//設置連接的套接字超時
            pool.SocketTimeout = 3000;//設置套接字超時讀取
            pool.MaintenanceSleep = 30;//設置維護線程運行的睡眠時間。如果設置為0,那么維護線程將不會啟動,30就是每隔30秒醒來一次

            //獲取或設置池的故障標志。
            //如果這個標志被設置為true則socket連接失敗,將試圖從另一台服務器返回一個套接字如果存在的話。
            //如果設置為false,則得到一個套接字如果存在的話。否則返回NULL,如果它無法連接到請求的服務器。
            pool.Failover = true;

            pool.Nagle = false;//如果為false,對所有創建的套接字關閉Nagle的算法
            pool.Initialize();

            // 獲得客戶端實例
            MemcachedClient mc = new MemcachedClient();
            mc.EnableCompression = false;




            for (int i = 1; i <= 50000; i++)

            {
                mc.Set(Guid.NewGuid().ToString(), "sadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahlsadsadsakjdklasjfklsjfalkshkfjhdskjfhskjfhkjhjsdkfhkjsahl;kfjsakldm,sa.mf,sdmnm,xnkvlhjxkclvnklsjfkldsjnfksdnfklsdnfm,dsnfm,sdnfdshfkjdshfkjdshkfjhdskjfsdfsdfsdf" + i.ToString());
                // mc.Delete(i.ToString()); 
            }


                //Console.WriteLine("------------測  試-----------");
                //mc.Set("test", "my value");  //存儲數據到緩存服務器,這里將字符串"my value"緩存,key 是"test"

                //if (mc.KeyExists("test"))   //測試緩存存在key為test的項目
                //{
                //    Console.WriteLine("test is Exists");
                //    Console.WriteLine(mc.Get("test").ToString());  //在緩存中獲取key為test的項目
                //}
                //else
                //{
                //    Console.WriteLine("test not Exists");
                //}


                //mc.Delete("test");  //移除緩存中key為test的項目

                //if (mc.KeyExists("test"))
                //{
                //    Console.WriteLine("test is Exists");
                //    Console.WriteLine(mc.Get("test").ToString());
                //}
                //else
                //{
                //    Console.WriteLine("test not Exists");
                //}
              

            SockIOPool.GetInstance().Shutdown();  //關閉池, 關閉sockets


            //  you code ....
            stopwatch.Stop(); //  停止監視
            TimeSpan timespan = stopwatch.Elapsed; //  獲取當前實例測量得出的總時間
            double hours = timespan.TotalHours; // 總小時
            double minutes = timespan.TotalMinutes;  // 總分鍾
            double seconds = timespan.TotalSeconds;  //  總秒數
            double milliseconds = timespan.TotalMilliseconds;  //  總毫秒數
            Console.WriteLine(seconds.ToString()+"用時");
            Console.ReadLine();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM