024. mvc5中使用memcache
1.Memcached是一个自由开源的,高性能,分布式内存对象缓存系统,本质上是一个简洁的key-value存储系统。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
2. 下载Memcache, 下载后在mvc5中使用memcacheddotnet_clientlib-1.1.5.zip中的dll文件
3. 解压并安装Memcache成为一个服务
解压后得到下图的文件夹,

使用管理员权限打开cmd, 如果不是管理员打开后, 则会报出'failed to install service or service already installed'错误, 然后输入memcached.exe -d install开始安装memcached服务. 输入memcached.exe -d uninstall 卸载服务

然后打开 服务 , 定位到memcached, 并启动他, 在服务器上一定要改成自动,

4. 开始程序测试:
安装telnet客户端 : 控制面板→程序和功能→启用和关闭Windows功能→勾选telnet客户端.

打开命令行, 开始连接, C:\Users\LG>telnet 127.0.0.1 11211, 第一个命令(stats)一般是显示不出来. 或者可以直接回车,然后就有一个ERROR的显示.
主要命令介绍如下:

5. 使用项目来测试缓存,将memcacheddotnet\trunk\clientlib\src\clientlib\bin\2.0\Release下的dll文件复制到项目的packages目录下, 然后创建测试控制台Demo, 添加引用
using Memcached.ClientLibrary;
using System;
namespace MemcacheDemo
{
class Program
{
static void Main(string[] args)
{
//存入key为a,value为123的一个缓存
Memcached.cache.Add("a", "123");
//读出key为a的缓存值
var s = Memcached.cache.Get("a");
//AMemcached.cache.Set("a", "456");
//AMemcached.cache.Delete("a");
//输出
Console.WriteLine(s);
Console.ReadKey();
}
}
class Memcached
{
public static MemcachedClient cache;
static Memcached()
{
string[] servers = { "192.168.1.112:11211", "192.168.1.113:11211" };
//初始化池
SockIOPool pool = SockIOPool.GetInstance();
//设置服务器列表
pool.SetServers(servers);
//各服务器之间负载均衡的设置比例
pool.SetWeights(new int[] { 1 });
//初始化时创建连接数
pool.InitConnections = 3;
//最小连接数
pool.MinConnections = 3;
//最大连接数
pool.MaxConnections = 5;
//连接的最大空闲时间,下面设置为6个小时(单位ms),超过这个设置时间,连接会被释放掉
pool.MaxIdle = 1000 * 60 * 60 * 6;
//socket连接的超时时间,下面设置表示不超时(单位ms),即一直保持链接状态
pool.SocketConnectTimeout = 0;
//通讯的超市时间,下面设置为3秒(单位ms),.Net版本没有实现
pool.SocketTimeout = 1000 * 3;
//维护线程的间隔激活时间,下面设置为30秒(单位s),设置为0时表示不启用维护线程
pool.MaintenanceSleep = 30;
//设置SocktIO池的故障标志
pool.Failover = true;
//是否对TCP/IP通讯使用nalgle算法,.net版本没有实现
pool.Nagle = false;
//socket单次任务的最大时间(单位ms),超过这个时间socket会被强行中端掉,当前任务失败。
pool.MaxBusy = 1000 * 10;
pool.Initialize();
cache = new MemcachedClient();
//是否启用压缩数据:如果启用了压缩,数据压缩长于门槛的数据将被储存在压缩的形式
cache.EnableCompression = false;
//压缩设置,超过指定大小的都压缩
//cache.CompressionThreshold = 1024 * 1024;
}
}
}
然后, 可以使用命令行进行测试了
可以看看 RoRoWoBlog框架
浙公网安备 33010602011771号