二、建立應用程式
1. 將commons.dll,icsharpcode.sharpziplib.dll,log4net.dll,memcached.clientlibrary.dll放到bin目錄
2. 引用memcached.clientlibrary.dll
3. 類中引用using memcached.clientlibrary;
4.**:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using memcached.clientlibrary;
;//伺服器可以是多個
//初始化池
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;
console.writeline("------------測 試-----------");
mc.set("test", "my value"); //儲存資料到快取伺服器,這裡將字串"my value"快取,key 是"test"
if (mc.keyexists("test")) //測試快取存在key為test的專案
else
mc.delete("test"); //移除快取中key為test的專案
if (mc.keyexists("test"))
else
console.readline();
sockiopool.getinstance().shutdown(); //關閉池, 關閉sockets}}
}
分布式快取
分布式快取 原則來說跟應用伺服器分布式應該是一樣,但快取是有狀態的。怎麼樣提高命中?1.最原始的演算法 那就是key hash取模,取到伺服器ip。在大量伺服器伸縮行有問題,加入一台伺服器就有可能讓所有的快取都失效。如 key hash 後是100,取10膜是0,取11膜 1,101 取10膜是1,...
分布式快取
網際網路發展的同時,也引領者相關技術的發展與變革,比如集群 高併發 負載均衡 高可用 海量資料的處理 系統安全 分布式快取等各方面的相關技術。簡單談一下分布式快取技術。2 三層架構 1 web層 表現層 主要對使用者資料接收,以及資料處理完成後返回,為客戶端提 用程式的訪問 2 應用層 對業務的處理...
分布式快取
分布式快取 1 什麼是分布式快取?在高併發的環境下,大量的i o處理與cpu的處理速度顯然不在同乙個數量級,從減輕資料庫的壓力和提高系統的響應速度兩個角度來考慮,因而都會在資料庫之前加一層快取。由於單機的記憶體資源和承載能力有限,因而可以採用多台伺服器來用作快取,使得多台快取伺服器形同一台,並且不會...