真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

高性能緩存系統(tǒng)Memcached怎么用

這篇文章給大家分享的是有關(guān)高性能緩存系統(tǒng)Memcached怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

為樂(lè)業(yè)等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及樂(lè)業(yè)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、樂(lè)業(yè)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

在Memcached中實(shí)體類型未經(jīng)序列化不能在Memcached中緩存,因此需要對(duì)實(shí)體類進(jìn)行處理,才能緩存下來(lái).

Memcached是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫(kù)負(fù)載。它通過(guò)在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來(lái)減少讀取數(shù)據(jù)庫(kù)的次數(shù),從而提高動(dòng)態(tài)、數(shù)據(jù)庫(kù)驅(qū)動(dòng)網(wǎng)站的速度。Memcached基于一個(gè)存儲(chǔ)鍵/值對(duì)的hashmap。其守護(hù)進(jìn)程(daemon )是用C寫(xiě)的,但是客戶端可以用任何語(yǔ)言來(lái)編寫(xiě),并通過(guò)memcached協(xié)議與守護(hù)進(jìn)程通信。

我們可以使用Memcached緩存string類型等已經(jīng)內(nèi)部實(shí)現(xiàn)了序列化的類型,但是對(duì)于我們自定義的類型,我們并不能在Memcached中緩存下來(lái),因?yàn)镸emcached只能緩存序列化之后的數(shù)據(jù),因此,在這里我們將自定義的實(shí)體類型序列化一下就可以在Memcached中存儲(chǔ)了。

首先下載windows平臺(tái)下的memcached,然后安裝。安裝完之后就是啟動(dòng)memcached服務(wù)了,你可以在cmd下用dos命令輸入,也可以在計(jì)算機(jī)管理->服務(wù)->memcached->啟動(dòng).來(lái)開(kāi)啟服務(wù).

隨后就是在項(xiàng)目中引入相關(guān)dll:
Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll
在項(xiàng)目的引用中引入Memcached.ClientLibrary.dll

隨后就是編寫(xiě)程序了,在這里創(chuàng)建一個(gè)MVC程序:
在Models文件夾中創(chuàng)建一個(gè)類:

[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; }
}

若沒(méi)有標(biāo)注為可序列化,則后續(xù)運(yùn)行程序?qū)?huì)報(bào)錯(cuò)。

隨后創(chuàng)建一個(gè)MemcachedHelper類來(lái)輔助編程.

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里面的具體實(shí)現(xiàn):

public class EntityMemcachedController : Controller
    {
        //
        // GET: /EntityMemcached/
        /// 
        /// 序列化實(shí)體類為字節(jié)數(shù)組,將其存儲(chǔ)到Memcached中,以緩存數(shù)據(jù),從而減輕訪問(wèn)壓力....
        /// 
        /// 
        public ActionResult Index()
        {
            var vipInfo = new List{
                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);//設(shè)置cookie過(guò)期時(shí)間

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

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

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

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

            }

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

看看實(shí)現(xiàn):

高性能緩存系統(tǒng)Memcached怎么用

高性能緩存系統(tǒng)Memcached怎么用

然后退出來(lái),重新點(diǎn)擊”實(shí)現(xiàn)memcached緩存”

高性能緩存系統(tǒng)Memcached怎么用

我設(shè)置了一分鐘之內(nèi)的緩存,因此在這一分鐘之內(nèi)將一直是這個(gè)界面,不得不說(shuō)memcached還是不錯(cuò)!

感謝各位的閱讀!關(guān)于“高性能緩存系統(tǒng)Memcached怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


本文名稱:高性能緩存系統(tǒng)Memcached怎么用
URL鏈接:http://weahome.cn/article/peieds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部