標籤:style class blog c code java
一:Memcached的安裝
step1. 下載memcache(http://jehiah.cz/projects/memcached-win32)的windows穩定版(這裡我下載了memcached 1.2.1 for Win32 binaries (Dec 23, 2006) 這個版本),解壓放某個盤下面,比如在c:\memcached
step2. 在終端(也即cmd命令介面)下輸入 ‘c:\memcached\memcached.exe -d install’ 安裝
step3. 再輸入: ‘c:\memcached\memcached.exe -d start’ 啟動。
PS: 以後memcached將作為windows的一個服務每次開機時自動啟動。這樣伺服器端已經安裝完畢了。
二: .NET memcached client library
下載檔案:https://sourceforge.net/projects/memcacheddotnet/
將Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目錄
引用Memcached.ClientLibrary.dll
程式執行個體
代碼using System;
using System.Collections;
using Memcached.ClientLibrary;
using System.Text;
namespace Memcache
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request["action"] == "clear")
this.clear();
else
this.test();
}
}
public void clear()
{
string[] servers = { "192.168.1.113:11211", "192.168.202.128:11211" };
//初始化池
SockIOPool pool = SockIOPool.GetInstance();
pool.SetServers(servers);
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();
MemcachedClient mc = new Memcached.ClientLibrary.MemcachedClient();
mc.EnableCompression = false;
mc.Delete("cache");
mc.Delete("endCache");
Response.Write("清空緩衝成功");
}
public void test()
{
//分布Memcachedf服務IP 連接埠
string[] servers = { "192.168.1.113:11211", "192.168.202.128:11211" };
//初始化池
SockIOPool pool = SockIOPool.GetInstance();
pool.SetServers(servers);
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();
//用戶端執行個體
MemcachedClient mc = new Memcached.ClientLibrary.MemcachedClient();
mc.EnableCompression = false;
StringBuilder sb = new StringBuilder();
//寫入緩衝
sb.AppendLine("寫入緩衝測試:");
sb.AppendLine("<br>_______________________________________<br>");
if (mc.KeyExists("cache"))
{
sb.AppendLine("緩衝cache已存在");
}
else
{
mc.Set("cache", "寫入緩衝時間:" +DateTime.Now.ToString());
sb.AppendLine("緩衝已成功寫入到cache");
}
sb.AppendLine("<br>_______________________________________<br>");
sb.AppendLine("讀取緩衝內容如下:<br>");
sb.AppendLine(mc.Get("cache").ToString());
//測試緩衝到期
sb.AppendLine("<br>_______________________________________<br>");
if (mc.KeyExists("endCache"))
{
sb.AppendLine("緩衝endCache已存在,到期時間為:" + mc.Get("endCache").ToString());
}
else
{
mc.Set("endCache", DateTime.Now.AddMinutes(1).ToString(), DateTime.Now.AddMinutes(1));
sb.AppendLine("緩衝已更新寫入到endCache,寫入時間:" + DateTime.Now.ToString() +" 到期時間:" + DateTime.Now.AddMinutes(1).ToString());
}
//分析緩衝狀態
Hashtable ht = mc.Stats();
sb.AppendLine("<br>_______________________________________<br>");
sb.AppendLine("Memcached Stats:");
sb.AppendLine("<br>_______________________________________<br>");
foreach (DictionaryEntry de in ht)
{
Hashtable info = (Hashtable)de.Value;
foreach (DictionaryEntry de2 in info)
{
sb.AppendLine(de2.Key.ToString() + ": " + de2.Value.ToString() + "<br>");
}
}
Response.Write(sb.ToString());
}
}
}
轉自:http://www.cnblogs.com/Caceolod/articles/1710342.html