Memcached使用小記

該文章簡單記錄一下在Windows平臺下安裝與配置Memcached的方法,Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。html

一、下載Memcached for Windows

  點擊下載(版本1.4.5)數據庫

  說明:win64bit 1.4.4 這個版本的MemCached有網友說 設置緩存過時時間和大併發的時候緩存會失敗,所以推薦安裝1.4.5的版本,該版本會更穩定windows

二、安裝Memcached

  把下載下來的Memcached文件放到D盤,個人路徑以下:緩存

  D:\Cache\memcached\64bit安全

  

2.一、命令行安裝

  個人系統時64bit,所以我安裝的是64位的Memcached-1.4.5併發

  安裝命令:socket

  一、以管理員身份運行 cmd.exe分佈式

  二、進入到memcached文件夾
    C:\Users\chenlong1>D:memcached

    D:\>cd Cache\memcached\64bit函數

  三、安裝
    D:\Cache\memcached\64bit>memcached-1.4.5.exe -d install

  四、啓動
    D:\Cache\memcached\64bit>memcached-1.4.5.exe -d start

 

Memcached的安裝就此結束,Memcached是以windows服務運行的,下面咱們來看一下咱們的Memcached是否安裝成功了

cmd  命令 services.msc 打開windows服務,找到memcached服務,說明安裝成功

 

安裝參數介紹:

  輸入命令:D:\Cache\memcached\64bit>memcached-1.4.5.exe -h 能夠查看memcached的安裝參數

參數對應的具體含義以下:

  -p 監聽的端口
  -l 鏈接的IP地址, 默認是本機
  -d start 啓動memcached服務
  -d restart 重起memcached服務
  -d stop|shutdown 關閉正在運行的memcached服務
  -d install 安裝memcached服務
  -d uninstall 卸載memcached服務
  -u 以的身份運行 (僅在以root運行的時候有效)
  -m 最大內存使用,單位MB。默認64MB
  -M 內存耗盡時返回錯誤,而不是刪除項
  -c 最大同時鏈接數,默認是1024
  -f 塊大小增加因子,默認是1.25
  -n 最小分配空間,key+value+flags默認是48
  -h 顯示幫助

 

2.2 bat批處理文件安裝

一、安裝啓動memcached的批處理命令以下:

 

echo start install memcached
cd D:\Cache\memcached\
memcached-1.4.5.exe -d install
echo start memcached service
memcached-1.4.5.exe -d start
echo end
pause

二、中止和卸載memcached的批處理命令以下:

echo start uninstall memcached
cd D:\Cache\memcached\
memcached-1.4.5.exe -d stop

memcached-1.4.5.exe -d uninstall 
echo end
pause

以管理員的身份運行批處理文件,便可安裝或卸載memcached服務

三、.net程序中使用memcached

因爲如今的項目中使用了EnyimMemcached.2.13操做memcached緩存,所以我也介紹一下EnyimMemcached的簡單使用

經過Nuget安裝EnyimMemcached.2.13

一、Web.config配置文件

<configuration>
  <configSections>
    <sectionGroup name="enyim.com">
      <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection,Enyim.Caching" />
    </sectionGroup>
    <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/>
  </configSections>
  <enyim.com>
    <memcached>
      <servers>
        <!-- put your own server(s) here-->
        <add address="127.0.0.1" port="11211" />
      </servers>
      <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
    </memcached>
  </enyim.com>
  
  <memcached keyTransformer="Enyim.Caching.TigerHashTransformer,Enyim.Caching">
    <servers>
      <add address="127.0.0.1" port="11211" />
    </servers>
    <socketPool minPoolSize="2" maxPoolSize="100"  connectionTimeout="00:00:10" deadTimeout="00:02:00" />
  </memcached>
</configuration>

二、MemCachedHelper

using Enyim.Caching;
using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public sealed class MemCachedHelper
    {
        private static MemcachedClient MemClient;
        static readonly object padlock = new object();

        //線程安全的單例模式
        public static MemcachedClient getInstance()
        {
            if (MemClient == null)
            {
                lock (padlock)
                {
                    if (MemClient == null)
                    {
                        MemClientInit();
                    }
                }
            }
            return MemClient;
        }
        //初始化緩存
        static void MemClientInit()
        {
            try
            {
                MemClient = new MemcachedClient("enyim.com/memcached");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //構造函數
        static MemCachedHelper()
        {
            getInstance();
        }

        public static void Store(string Key, object Value, DateTime ExpiredAt)
        {
            MemClient.Store(StoreMode.Set, Key, Value, ExpiredAt);
        }

        public static T Get<T>(string Key)
        {
            return MemClient.Get<T>(Key);
        }

        public static void Remove(string Key)
        {
            MemClient.Remove(Key);
        }

    }
}

三、調用測試

 

 

本文參考:

  http://www.cnblogs.com/lucky_hu/p/4676734.html

相關文章
相關標籤/搜索