Mencached使用小记

该文章简单记录一下在Windows平台下安装与配置Memcached的方法,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。

1、下载Memcached for Windows

  点击下载(版本1.4.5)

  说明:win64bit 1.4.4 这个版本的MemCached有网友说 设置缓存过期时间和大并发的时候缓存会失败,因此推荐安装1.4.5的版本,该版本会更稳定

2、安装Memcached

  把下载下来的Memcached文件放到D盘,我的路径如下:

  D:\Cache\memcached\64bit

  Mencached使用-LMLPHP

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

 Mencached使用-LMLPHP

Memcached的安装就此结束,Memcached是以windows服务运行的,下面我们来看一下我们的Memcached是否安装成功了

cmd  命令 services.msc 打开windows服务,找到memcached服务,说明安装成功

Mencached使用-LMLPHP

安装参数介绍:

  输入命令:D:\Cache\memcached\64bit>memcached-1.4.5.exe -h 可以查看memcached的安装参数

Mencached使用-LMLPHP

参数对应的具体含义如下:

  -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的批处理命令如下:

Mencached使用-LMLPHP
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
Mencached使用-LMLPHP

2、停止和卸载memcached的批处理命令如下:

Mencached使用-LMLPHP
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
Mencached使用-LMLPHP

以管理员的身份运行批处理文件,即可安装或卸载memcached服务

3、.net程序中使用memcached

由于现在的项目中使用了EnyimMemcached.2.13操作memcached缓存,因此我也介绍一下EnyimMemcached的简单使用

通过Nuget安装EnyimMemcached.2.13

Mencached使用-LMLPHP

1、Web.config配置文件

Mencached使用-LMLPHP
<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>
Mencached使用-LMLPHP

2、MemCachedHelper

Mencached使用-LMLPHP
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);
} }
}
Mencached使用-LMLPHP

3、调用测试

Mencached使用-LMLPHP

本文参考:

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

05-08 08:08