Memcached使用小记
该文章简单记录一下在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