1、Memcached是什么

  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

2、Memcached集群原理

  Memcache是通过客户端驱动实现集群。Redis、MongoDb是通过服务器端实现集群初始化驱动的时候开业给定一个集合:memcache服务器所在的机器ip和端口。

  Memcache 在添加一个键值对时,

  第一步:把key做一个哈希运算

  第二步:根据哈希值对服务器个数取余。根据取余结果,把数据放到对应机器上去

  Memcache 在获取一个键值对时,

  第一步:根据key做一个哈希运算

  第二步:根据哈希值对服务器个数取余。根据取余结果,从相应服务器上取数据

3、Memcached的优缺点

  (1)       不能作为持久化存储

  (2)       存储数据有限制:最大1M

  (3)       Memcache存储数据只能key-value

  (4)       集群数据没有复制和同步机制

  (5)       内存回收不及时。LRU:未使用内存》过期内存》最近最少使用内存,是一个惰性删除

4、Memcached的安装与卸载

  推荐这篇文章,比较详细的介绍了安装与卸载

  http://blog.csdn.net/zhaotengfei36520/article/details/41315329

  安装成功运行后,可以在服务那里看到Memcached服务正在运行

5、C#中Memcached的使用

  通过Nuget安装 EnyimMemcached

  新建一个MemcacheHelper类

  

public class MemcacheHelper
{
public MemcachedClient mc = MemCached.getInstance();
/// <summary>
/// 添加缓存
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <returns></returns>
public bool AddCache(string key, object value)
{
return mc.Store(StoreMode.Add, key, value);
}
/// <summary>
/// 添加缓存,并指定过期时间
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="exp"></param>
/// <returns></returns>
public bool AddCache(string key, object value, DateTime exp)
{
return mc.Store(Enyim.Caching.Memcached.StoreMode.Add, key, value, exp);
}
/// <summary>
/// 修改缓存
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool SetCache(string key, object value)
{
return mc.Store(Enyim.Caching.Memcached.StoreMode.Set, key, value);
}
/// <summary>
/// 修改缓存并指定过期时间
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="exp"></param>
/// <returns></returns>
public bool SetCache(string key, object value, DateTime exp)
{
return mc.Store(Enyim.Caching.Memcached.StoreMode.Set, key, value, exp);
}
/// <summary>
/// 通过键获取缓存
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public object GetCache(string key)
{
return mc.Get(key);
}
public T GetCache<T>(string key)
{
return mc.Get<T>(key);
}
/// <summary>
/// 通过键删除缓存
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public bool DeleteCache(string key)
{
return mc.Remove(key);
}
}

  通过单例模式获取Memcached客户端对象

public sealed class MemCached
{
private static MemcachedClient MemClient { get; set; }
static readonly object padlock = new object();
//线程安全的单例模式
public static MemcachedClient getInstance()
{
if (MemClient == null)
{
lock (padlock)
{
if (MemClient == null)
{
MemClientInit();
}
}
}
return MemClient;
} private static void MemClientInit()
{
string serverList = "127.0.0.1:11211";
//初始化缓存
MemcachedClientConfiguration memConfig = new MemcachedClientConfiguration();
memConfig.AddServer(serverList);
memConfig.Protocol = MemcachedProtocol.Binary;
//下面请根据实例的最大连接数进行设置
memConfig.SocketPool.MinPoolSize = ;
memConfig.SocketPool.MaxPoolSize = ;
MemClient = new MemcachedClient(memConfig);
}
}

  最后测试代码

    

  

Memcached在windows下的基本使用的更多相关文章

  1. memcached 在windows下安装及启动

    memcached 在windows下安装及启动   Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数, ...

  2. (转)Memcached 在windows下的java使用

    Memcached 在windows下的java使用   研究这个东东主要是为了解决在教务管理中选课系统的大并发情况下数据库频繁读写造成速度慢的问题,但要使用WEB服务器的内存,是不是可靠还需要验证, ...

  3. Memcached在windows下安装与使用

    建议:windows系统下仅为测试所有,生产环境下服务端应使用Linux系统. 本文最后更新于:2014-08-03 18:24 原文:http://www.yaosansi.com/post/mem ...

  4. memcached在Windows下的安装

    memcached简介详情请谷歌.这里介绍如何在windows下安装. 1.下载     下载地址:http://download.csdn.net/detail/u010562988/9456109 ...

  5. memcached在windows下多实例并存

    文章来源:http://blog.csdn.net/xingxing513234072/article/details/39343999 memcached.exe的-d install命令安装时其他 ...

  6. memcached在windows下的安装与命令使用方法

    先下载memcached for win32 下载地址1:http://filemarkets.com/fs/8tdo6ndg41d919599/ 下载地址2:http://www.400gb.com ...

  7. Memcached在windows下的安装和使用

    1.下载memcached安装文件及c#开发所需的dll 2.解压<memcached-1.2.6-win32-bin.zip>,并cmd,定位到解压目录. 3.安装服务:输入命令 mem ...

  8. Memcached在Windows下的配置和使用

    Memcached学习笔记---- 安装和配置 首先,下载Memcached相关文件. 打开控制台,进入Memcached主程序目录,输入: memcached.exe -d install //安装 ...

  9. Memcached在Windows下的配置和使用(转)

    出处:http://www.cnblogs.com/sunniest/p/4154209.html Memcached学习笔记---- 安装和配置 首先,下载Memcached相关文件. 打开控制台, ...

随机推荐

  1. Git简略教程

    Git使用教程 厂里大部分后端应用的版本控制工具为SVN,前端代码则更习惯于Git,好久不用Git有些生疏,复习一下,效率就是生命. 1.拉取远程分支到本地 git clone + 代码地址 + 分支 ...

  2. cmd批处理延迟代码 结束进程

    choice /t 5 /d y /n >nul taskkill /im chrome.exe /f pause

  3. 关于微信小程序的的总结

    微信小程序学完了,给大家分享一些自己学小程序的心得,希望能帮到大家. 首先,我谈谈小程序数据绑定的那一块,所有从本地或者远程服务器的API传过来,都必须绑定到data: {}, 绑定格式是一个一个的键 ...

  4. 常用统计分析 SQL 在 AWK 中的实现(转)

    转自:http://my.oschina.net/leejun2005/blog/100710 最近有需求需要本地处理一些临时的数据,用做统计分析.如果单纯的 MYSQL 也能实现, 不过一堆临时数据 ...

  5. springboot 1.5.2 thymeleaf 添加templates 静态资源访问路径

    从velocity 模板切换到thymeleaf 后, 默认模板位置为templates , 有时候静态资源方在该目录下会出现访问404错误 解决办法: application.properties ...

  6. linux命令11

    tar命令的使用 tar文件是把几个文件的(或)目录集合在一个文件夹里,是创建备份和归档的最佳工具. [root@localhost ~]# tar --help用法: tar [选项...] [FI ...

  7. sql备份(.mdf文件备份)

    第一步: 右键需要备份的数据库(这里以MyDB为例),选择“属性”. 第二步: 选择“文件”,复制路径 第三步: 打开文件所在目录,复制MyDB.mdf和MyDB_log.ldf 第四步: 把数据库停 ...

  8. Java常用类之String类、Stringbuffer和Random类练习

    定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...

  9. MySQL存储汉字

    之前在网上查找了很多方法,排在前排的都是修改配置文件my.ini的,没有成功,后来找到了一个解决方法: 在建表的时候,在语句后面加上段"engine = innodb default cha ...

  10. charles抓包,打断点,连接手机抓包

    写给我自己: 如果是使用charles抓包.一定要tm的保证手机和电脑连的是一个网. charles抓本地包的操作 1.打开charles, 2.打开浏览器访问某网页,就可抓到对应的包 charles ...