日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
分布式緩存系統(tǒng)memcached簡(jiǎn)介與實(shí)踐

分布式緩存系統(tǒng)Memcached簡(jiǎn)介與實(shí)踐

作者:戲水 2009-02-06 09:38:38

開發(fā)

前端

分布式 在數(shù)據(jù)驅(qū)動(dòng)的web開發(fā)中,經(jīng)常要重復(fù)從數(shù)據(jù)庫(kù)中取出相同的數(shù)據(jù),這種重復(fù)極大的增加了數(shù)據(jù)庫(kù)負(fù)載。緩存是解決這個(gè)問(wèn)題的好辦法。但是ASP.NET中的雖然已經(jīng)可以實(shí)現(xiàn)對(duì)頁(yè)面局部進(jìn)行緩存,但還是不夠靈活。此時(shí)memcached或許是你想要的。

成都創(chuàng)新互聯(lián)公司堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨嚒N覀儚牟缓鲇瞥踉L客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)成都創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營(yíng)銷服務(wù)商,為您提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì)、H5場(chǎng)景定制、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、小程序設(shè)計(jì)服務(wù),給眾多知名企業(yè)提供過(guò)好品質(zhì)的建站服務(wù)。

memcached是什么?

memcached是由Danga Interactive開發(fā)的,高性能的,分布式的內(nèi)存對(duì)象緩存系統(tǒng),用于在動(dòng)態(tài)應(yīng)用中減少數(shù)據(jù)庫(kù)負(fù)載,提升訪問(wèn)速度。

memcached能緩存什么?

通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨大的hash表,Memcached能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫(kù)檢索的結(jié)果等。

memcached快么?

非???。memcached使用了libevent(如果可以的話,在linux下使用epoll)來(lái)均衡任何數(shù)量的打開鏈接,使用非阻塞的網(wǎng)絡(luò)I/O,對(duì)內(nèi)部對(duì)象實(shí)現(xiàn)引用計(jì)數(shù)(因此,針對(duì)多樣的客戶端,對(duì)象可以處在多樣的狀態(tài)), 使用自己的頁(yè)塊分配器和哈希表, 因此虛擬內(nèi)存不會(huì)產(chǎn)生碎片并且虛擬內(nèi)存分配的時(shí)間復(fù)雜度可以保證為O(1).。

Danga Interactive為提升Danga Interactive的速度研發(fā)了memcached。目前,LiveJournal.com每天已經(jīng)在向一百萬(wàn)用戶提供多達(dá)兩千萬(wàn)次的頁(yè)面訪問(wèn)。而這些,是由一個(gè)由web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器組成的集群完成的。memcached幾乎完全放棄了任何數(shù)據(jù)都從數(shù)據(jù)庫(kù)讀取的方式,同時(shí),它還縮短了用戶查看頁(yè)面的速度、更好的資源分配方式,以及memcache失效時(shí)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)速度。

memcached的特點(diǎn)

memcached的緩存是一種分布式的,可以讓不同主機(jī)上的多個(gè)用戶同時(shí)訪問(wèn), 因此解決了共享內(nèi)存只能單機(jī)應(yīng)用的局限,更不會(huì)出現(xiàn)使用數(shù)據(jù)庫(kù)做類似事情的時(shí)候,磁盤開銷和阻塞的發(fā)生。

memcached的使用

memcached服務(wù)器端的安裝(此處將其作為系統(tǒng)服務(wù)安裝)

下載文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)

1. 解壓縮文件到

c:\memcached

2. 命令行輸入

'c:\memcached\memcached.exe -d install'

3. 命令行輸入

'c:\memcached\memcached.exe -d start'

該命令啟動(dòng) memcached ,默認(rèn)監(jiān)聽端口為 11211,通過(guò) memcached.exe -h 可以查看其幫助。

.NET memcached client library

下載文件:https://sourceforge.net/projects/memcacheddotnet/

里面有.net1.1 和 .net2.0的兩種版本 還有一個(gè)不錯(cuò)的例子。

應(yīng)用

1. 將Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目錄

2. 引用Memcached.ClientLibrary.dll

3. 代碼

 namespace Memcached.MemcachedBench
 {
     using System;
     using System.Collections;
 
     using Memcached.ClientLibrary;
 
     public class MemcachedBench 
      {
          [STAThread]
         public static void Main(String[] args) 
          {
            string[] serverlist = { "10.0.0.131:11211", "10.0.0.132:11211" };
 
             //初始化池
              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();
 
             // 獲得客戶端實(shí)例
              MemcachedClient mc = new MemcachedClient();
              mc.EnableCompression = false;
 
              Console.WriteLine("------------測(cè)   試-----------");
              mc.Set("test", "my value");  //存儲(chǔ)數(shù)據(jù)到緩存服務(wù)器,這里將字符串"my value"緩存,key 是"test"
 
             if (mc.KeyExists("test"))   //測(cè)試緩存存在key為test的項(xiàng)目
             {
                  Console.WriteLine("test is Exists");
                  Console.WriteLine(mc.Get("test").ToString());  //在緩存中獲取key為test的項(xiàng)目
              }
             else
              {
                  Console.WriteLine("test not Exists");
              }
 
              Console.ReadLine();
 
              mc.Delete("test");  //移除緩存中key為test的項(xiàng)目
 
            if (mc.KeyExists("test"))
              {
                  Console.WriteLine("test is Exists");
                  Console.WriteLine(mc.Get("test").ToString());
              }
             else
              {
                  Console.WriteLine("test not Exists");
              }
              Console.ReadLine();
             
              SockIOPool.GetInstance().Shutdown();  //關(guān)閉池, 關(guān)閉sockets
          }
      }
 }

4. 運(yùn)行結(jié)果


網(wǎng)站題目:分布式緩存系統(tǒng)memcached簡(jiǎn)介與實(shí)踐
網(wǎng)頁(yè)地址:http://www.5511xx.com/article/dpsgoig.html