Memcahed分布式快取案例

2021-08-02 19:57:00 字數 1623 閱讀 9685

二、建立應用程式

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的處理速度顯然不在同乙個數量級,從減輕資料庫的壓力和提高系統的響應速度兩個角度來考慮,因而都會在資料庫之前加一層快取。由於單機的記憶體資源和承載能力有限,因而可以採用多台伺服器來用作快取,使得多台快取伺服器形同一台,並且不會...