中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

高性能緩存系統Memcached怎么用

發布時間:2021-09-17 09:53:28 來源:億速云 閱讀:119 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關高性能緩存系統Memcached怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在Memcached中實體類型未經序列化不能在Memcached中緩存,因此需要對實體類進行處理,才能緩存下來.

Memcached是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協議與守護進程通信。

我們可以使用Memcached緩存string類型等已經內部實現了序列化的類型,但是對于我們自定義的類型,我們并不能在Memcached中緩存下來,因為Memcached只能緩存序列化之后的數據,因此,在這里我們將自定義的實體類型序列化一下就可以在Memcached中存儲了。

首先下載windows平臺下的memcached,然后安裝。安裝完之后就是啟動memcached服務了,你可以在cmd下用dos命令輸入,也可以在計算機管理->服務->memcached->啟動.來開啟服務.

隨后就是在項目中引入相關dll:
Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll
在項目的引用中引入Memcached.ClientLibrary.dll

隨后就是編寫程序了,在這里創建一個MVC程序:
在Models文件夾中創建一個類:

[Serializable]
public class VIP
{
public string UserName { get; set; }

public int? Vip { get; set; }

public DateTime? VipEndDate { get; set; }

public string Mail { get; set; }

public string QQ { get; set; }
}

若沒有標注為可序列化,則后續運行程序將會報錯。

隨后創建一個MemcachedHelper類來輔助編程.

public class MemcachedHelper
{
public static MemcachedClient mclient;

static MemcachedHelper()
{
string[] serverlist = new string[] { "127.0.0.1:11211" };

SockIOPool pool = SockIOPool.GetInstance("First");
pool.SetServers(serverlist);
pool.Initialize();
mclient = new MemcachedClient();
mclient.PoolName = "First";
mclient.EnableCompression = false;
}

public static bool set(string key, object value, DateTime expiry)
{
return mclient.Set(key, value, expiry);
}

public static object Get(string key)
{
return mclient.Get(key);
}

}

最后就是Controller里面的具體實現:

public class EntityMemcachedController : Controller
    {
        //
        // GET: /EntityMemcached/
        /// <summary>
        /// 序列化實體類為字節數組,將其存儲到Memcached中,以緩存數據,從而減輕訪問壓力....
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var vipInfo = new List<VIP>{
                new VIP{ UserName="張三", Vip=1, QQ="3123456", Mail="3123456", VipEndDate=(DateTime?)DateTime.Now.AddDays(1) },
                new VIP{ UserName="李四", Vip=1, QQ="4123456", Mail="4123456", VipEndDate=(DateTime?)DateTime.Now.AddDays(2) },
                new VIP{ UserName="王五", Vip=1, QQ="5123456", Mail="5123456", VipEndDate=(DateTime?)DateTime.Now.AddDays(3) },
                new VIP{ UserName="趙六", Vip=1, QQ="6123456", Mail="6123456", VipEndDate=(DateTime?)DateTime.Now.AddDays(4) },
                new VIP{ UserName="劉七", Vip=1, QQ="7123456", Mail="7123456", VipEndDate=(DateTime?)DateTime.Now.AddDays(5) }
            };

            
            if (Request.Cookies["_EntityMemcached"] == null)
            {
                string sessionId = Guid.NewGuid().ToString();
                Response.Cookies["_EntityMemcached"].Value = sessionId;
                Response.Cookies["_EntityMemcached"].Expires = DateTime.Now.AddMinutes(1);//設置cookie過期時間

                MemcachedHelper.set(sessionId, vipInfo, DateTime.Now.AddMinutes(1));//設置緩存過期時間

                return Content("Memcached分布式緩存設置成功!!!");
            }
            else
            {
                string key = Request.Cookies["_EntityMemcached"].Value.ToString();

                object obj = MemcachedHelper.Get(key);
                List<VIP> info = obj as List<VIP>;

                if (info != null)
                {
                    return View(info);
                }

            }

            return Content("若顯示則有'bug'");
        }

看看實現:

高性能緩存系統Memcached怎么用

高性能緩存系統Memcached怎么用

然后退出來,重新點擊”實現memcached緩存”

高性能緩存系統Memcached怎么用

我設置了一分鐘之內的緩存,因此在這一分鐘之內將一直是這個界面,不得不說memcached還是不錯!

感謝各位的閱讀!關于“高性能緩存系統Memcached怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

静安区| 锡林郭勒盟| 湾仔区| 连城县| 河北省| 油尖旺区| 西乡县| 定陶县| 菏泽市| 临洮县| 张家界市| 密云县| 永春县| 澄城县| 肥城市| 林芝县| 阿城市| 邹城市| 嘉兴市| 翁源县| 古丈县| 宾阳县| 简阳市| 澜沧| 彩票| 鄯善县| 富平县| 稻城县| 屏南县| 容城县| 江城| 武宣县| 无锡市| 庄河市| 平利县| 丰顺县| 连南| 峡江县| 广汉市| 清水河县| 富平县|