該文章簡單記錄一下在Windows平台下安裝與配置Memcached的方法,Memcached 是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。
1、下載Memcached for Windows
說明:win64bit 1.4.4 這個版本的MemCached有網友說 設置緩存過期時間和大並發的時候緩存會失敗,因此推薦安裝1.4.5的版本,該版本會更穩定
2、安裝Memcached
把下載下來的Memcached文件放到D盤,我的路徑如下:
D:\Cache\memcached\64bit
2.1、命令行安裝
我的系統時64bit,因此我安裝的是64位的Memcached-1.4.5
安裝命令:
1、以管理員身份運行 cmd.exe
2、進入到memcached文件夾
C:\Users\chenlong1>D:
D:\>cd Cache\memcached\64bit
3、安裝
D:\Cache\memcached\64bit>memcached-1.4.5.exe -d install
4、啟動
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批處理文件安裝
1、安裝啟動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
2、停止和卸載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服務
3、.net程序中使用memcached
由於現在的項目中使用了EnyimMemcached.2.13操作memcached緩存,因此我也介紹一下EnyimMemcached的簡單使用
通過Nuget安裝EnyimMemcached.2.13
1、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>
2、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); } } }
3、調用測試
本文參考:
http://www.cnblogs.com/lucky_hu/p/4676734.html