非常快。memcached使用了libevent(如果可以的話,在linux下使用epoll)來均衡任何數量的開啟鏈結,使用非阻塞的網路i/o, 對內部物件實現引用計數(因此,針對多樣的客戶端,物件可以處在多樣的狀態), 使用自己的頁塊分配器和雜湊表, 因此虛擬記憶體不會產生碎片並且虛擬記憶體分配的時間複雜度可以保證為o(1).。
danga interactive為提公升danga interactive的速度研發了memcached。目前,livejournal.com每天已經在向一百萬使用者提供多達兩千萬次的頁面訪問。而這 些,是由乙個由web伺服器和資料庫伺服器組成的集群完成的。memcached幾乎完全放棄了任何資料都從資料庫讀取的方式,同時,它還縮短了使用者檢視 頁面的速度、更好的資源分配方式,以及memcache失效時對資料庫的訪問速度。
memcached的特點
裡面有.net1.1 和 .net2.0的兩種版本 還有乙個不錯的例子。
三 應用
1 將 commons.dll,icsharpcode.sharpziplib.dll,log4net.dll,memcached.clientlibrary.dll 等放到bin目錄
2 引用memcached.clientlibrary.dll
3 **
1namespace
memcached.memcachedbench2;
1415
//初始化池
16sockiopool pool
=sockiopool.getinstance();
17pool.setservers(serverlist);
1819
pool.initconnections =3
;20pool.minconnections =3
;21pool.maxconnections =5
;2223pool.socketconnecttimeout
=1000;24
pool.sockettimeout
=3000;25
26pool.maintenancesleep =30
;27pool.failover
=true;28
29pool.nagle
=false;30
pool.initialize();
3132
//獲得客戶端例項
33memcachedclient mc
=new
memcachedclient();
34mc.enablecompression
=false;35
36console.writeline(
"------------ 測 試-----------");
37mc.set(
"test",
"my value
");
//儲存資料到快取伺服器,這裡將字串"my value"快取,key 是"test"
3839
if(mc.keyexists(
"test
"))
//測試快取存在key為test的專案
4044
else
4548
49console.readline();
5051
mc.delete(
"test
");
//移除快取中key為test的專案
5253
if(mc.keyexists(
"test"))
5458
else
5962
console.readline();
6364
sockiopool.getinstance().shutdown();
//關閉池, 關閉sockets65}
66}67}
四 執行結果
分布式快取 memcache學習
1.使用分布式快取是為了解決多台機器共享資訊的問題,通過訪問乙個ip和埠來可以訪問不同的iis伺服器 2.memcache基礎原理 在socket伺服器端儲存資料是以鍵值對的形式儲存 記憶體處理的演算法 本質就是乙個大的雜湊表。key最大長度是255個字元,value最大為1mb 記憶體模型 mem...
memcache的分布式快取問題
有關使用memcache做分布式快取的方案,簡單寫下來,僅供參考。memcache是優異的快取解決方案,很多專案都有使用。memcache服務本身並不具備分布式快取的能力,它提供的就是對對的訪問能力,分布式的能力則完全來自於客戶端。現在有不少memcache的客戶端lib採用consistent h...
分布式快取Memcache和Redis
針對於現在計算機的cpu和網路設施,對應用程式來說,執行效率的瓶頸,已經不是 的長度 實現同乙個功能 和頻寬了,而是,訪問資源的過程,即 讓我們的程式慢下來的罪魁禍首就是io操作。程式從硬碟上讀取資料是乙個非常花費時間的操作,因為我們現在所使用的硬碟是機械式的,你想機械的執行速度和電的速度,那是乙個...