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