阅读目录

1.MemCached是什么?

2.Window中MemCached安装

3.MemCached命令

4.简单示例

MemCached是什么  

  MemCached是一个自由开源,高性能,分布式内存对象缓存系统。Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。

MemCached是一种基于内存的key-value存储,用来存储小块的任意数据。实现原理就是,第一次从数据库获取到结果之后,同时将结果保存在内存中,从而简单对数据库的访问次数,以提高Web应用的速度。

  

Memcached 官网:http://memcached.org/

Window中MemCached安装

下载地址:http://pan.baidu.com/s/1yVILw       提取密码:5gx9

官方网站:http://memcached.org/

下载完成后

1、打开SetupFile安装文件夹。

2、以管理员身份打开cmd,输入以下命令

3、安装成功之后,要去服务中启动memcached服务。

MemCached命令

MemCached中有很多命令,大概可分为增加、更新、获取和删除缓存数据,下面简单介绍几种常用的命令;

Set

用于将value(数据值)存储到指定的key(键)中。

如果set的key已经存在,该命令会更新该key所对应的原来的数据,也就是实现了更新的作用。

Add

用于将value(数据值)存储到指定的key(键)中。

如果 Add 的 key 已经存在,则不会更新数据,之前的值将仍然保持相同,并且您将获得响应 NOT_STORED

Get

Get命令获取存储在 key() 中的 value(数据值) ,如果 key 不存在,则返回空。

Delete

用于删除已存在的 key(键)。

flush_all 

flush_all 命令用于清理缓存中的所有 key=>value(=>) 对。

该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。

简单示例

新建一个控制台程序,从下载的目录中添加ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll三个组件,新建一个MemCached管理类,具体代码如下:

/// <summary>
/// 分布式缓存的MemCached管理器
/// </summary>
public class MemCachedManager
{
public static MemcachedClient cache; static MemCachedManager()
{
string[] servers = { "172.20.61.195:11211" };
//初始化池
SockIOPool pool = SockIOPool.GetInstance();
//设置服务器列表
pool.SetServers(servers);
//设置各服务之间负责均衡的权重
pool.SetWeights(new int[] { });
//初始化时创建连接数
pool.InitConnections = ;
//最小连接数
pool.MinConnections = ;
//最大连接数
pool.MaxConnections = ;
//连接的最大空闲时间,下面设置为6个小时(单位为ms),超过这个设置时间,连接会被释放
pool.MaxIdle = * * * ;
//socket连接的超时时间,为0表示永不超时,即一直保持连接状态
pool.SocketConnectTimeout = ;
//通讯的超时时间,下面设置为3秒,.net版本没有实现
pool.SocketTimeout = * ;
//维护线程的间隔激活时间,下面设置为30秒(单位s),设置为0时表示不启用维护线程
pool.MaintenanceSleep = ;
//设置SocketIO池的故障标志
pool.Failover = true;
//是否对TCP/IP通讯使用nalgle算法,.net版本没有实现
pool.Nagle = false;
//socket单次任务的最大时间(单位ms),超过这个时间socket会被强行中断,当前任务失败
pool.MaxBusy = * ;
pool.Initialize();
cache = new MemcachedClient();
//是否启用压缩数据:如果启用了压缩,数据压缩长于门槛的数据将被储存在压缩的形式
cache.EnableCompression = false;
}
}

其中IP是本机地址,端口是固定的,如果有多台服务器用于缓存,在数组列出对应的IP即可。

测试代码:

public static void TestMethod()
{
//清除所有的缓存数据
MemCachedManager.cache.FlushAll(); var v1 = MemCachedManager.cache.Add("a", "");
var res1 = MemCachedManager.cache.Get("a");
Console.WriteLine("第一次Add返回值{0},结果{1}", v1, res1); var v2 = MemCachedManager.cache.Add("a", "");
var res2 = MemCachedManager.cache.Get("a");
Console.WriteLine("第二次Add返回值{0},结果{1}", v2, res2); var v3 = MemCachedManager.cache.Set("a", "");
var res3 = MemCachedManager.cache.Get("a");
Console.WriteLine("Set返回值{0},结果{0}", res3); var v4 = MemCachedManager.cache.Replace("a", "");
var res4 = MemCachedManager.cache.Get("a");
Console.WriteLine("replace返回值{0},结果{0}", res4); var v5 = MemCachedManager.cache.Replace("b", "");
Console.WriteLine("replace返回值{0}", v5); MemCachedManager.cache.Set("b","");
MemCachedManager.cache.Delete("b");
var v6= MemCachedManager.cache.KeyExists("b");
Console.WriteLine("Delete之后返回值{0}", v6);
}
}

运行结果:

.NET中MemCached使用介绍的更多相关文章

  1. Memcached服务介绍及安装指南

    一.memcached服务介绍 1.为什么需要memcached服务 A:第一种场景 网站访问大多数情况下都需要查询数据库操作,如果网站的流量很大并且大多数的访问会造成数据库高负荷的状况下,由于大部分 ...

  2. Memcached简单介绍

    Memcached简单介绍 简介:Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.================================================= ...

  3. AutoMapper之ABP项目中的使用介绍

    最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...

  4. iOS开发UI篇—iPad开发中得modal介绍

    iOS开发UI篇—iPad开发中得modal介绍 一.简单介绍 说明1: 在iPhone开发中,Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2: ...

  5. objective-c 中的关联介绍

    objective-c 中的关联介绍 转载请注明CSDN博客上的出处: http://blog.csdn.net/daiyibo123/article/details/46471993 如何设置关联 ...

  6. ORACLE 中的 锁 介绍

    ORACLE 中的 锁 介绍 Oracle数据库支持多个用户同时与数据库进行交互,每个用户都可以同时运行自己的事务,从而也需要对并发访问进行控制.Oracle也是用“锁”的机制来防止各个事务之间的相互 ...

  7. Android中Snackbar的介绍以及使用

    Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版,不仅有显示信息的功能,还可以添加一个Action,实现点击功能,可以右滑删除. 效果图 Snackba ...

  8. 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

     1 PersonTestMapper.xml中的内容如下: <?xmlversion="1.0"encoding="UTF-8"?> < ...

  9. [翻译]Mock 在 Python 中的使用介绍

    目录 Mock 在 Python 中的使用介绍 原文链接与说明 恐惧系统调用 一个简单的删除函数 使用 Mock 重构 潜在陷阱 向 'rm' 中加入验证 将文件删除作为服务 方法 1:模拟实例的方法 ...

随机推荐

  1. python logging模块笔记

    1 ) 给logger定制了两个日志级别INFO和DEBUG,分别通过filehandler添加不同输出到不同文件,但如何让DEBUG里只有DEBUG的信息? 答案:可重写DEBUG对应的Fileha ...

  2. Android Studio在创建/导入项目的时候,一直处于building “XXX”gradle project info的解决办法

    Android Studio在新建项目或者导入项目的时候,可能会一直处于building “XXX”gradle project info的状态,而且还取消不了,无奈之下只能干掉进程... 还有一种情 ...

  3. quartz.net任务调度:源码及使用文档

    目录: 1.quartz.net任务调度:源码及使用文档 2.quartz.net插件类库封装 前言 前段时间把自己封装quartz.net 类库的过程总结到博客园,有网友想要看一下源码,所以就把源码 ...

  4. Java中的位运算

    昨天去面试的时候做到了一道Java的位运算题目,发现有个运算符不懂:">>>",今天特地查了一下,并小结一下常见的位运算符号: ~  按位非(NOT)(一元运算) ...

  5. tensorflow添加自定义的auc计算operator

    tensorflow可以很方便的添加用户自定义的operator(如果不添加也可以采用sklearn的auc计算函数或者自己写一个 但是会在python执行,这里希望在graph中也就是c++端执行这 ...

  6. [译]SQL Server分析服务的权限配置

    简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权 ...

  7. 圣诞老人去哪?Power BI告诉你

    随着圣诞节的来临,微软的Power BI团队使用Power BI来回答大家一直以来所关心的问题:圣诞老人去哪? 要回答这个问题,来自社交网络的数据是最合适不过的了.于是Power BI团队用以下关键字 ...

  8. 算法系列:FFT 002

    转载自http://blog.jobbole.com/58246/ 快速傅里叶变换(Fast Fourier Transform)是信号处理与数据分析领域里最重要的算法之一.没有正规计算机科学课程背景 ...

  9. Session和Cache的区别

    以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application.其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息.Session则保存 ...

  10. poj1236Network of Schools Tarjan裸题

    其实就是手打了个Tarjan的模板 输出的时候注意是入度为0的点的个数和max(入度0的个数,出度0的个数),在n=1时特判为0即可 ——以后图论要渐渐模板化,方便使用 #include <cs ...