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. C# 特性参数(注解属性加在参数前面)

    特性参数 webapi 框架里有很多特性参数,为了解除一些新人的疑惑,写个小例子分享下. class Program { static void Main(string[] args) { var m ...

  2. Ionic进行PC端Web开发时通过脚本压缩提高第一次加载效率

    1. 问题 1.1. 问题上下文描述: 基于Ionic进行PC端的Web应用开发: 使用Tomcat作为最终服务发布容器. 1.2. 问题描述: 编译后main.js的大小为4-6MByte.(集成第 ...

  3. jQuery总结---版本一

    day01--- jQuery是一个函数库,简化了DOM操作,屏蔽了浏览器兼容性问题.函数分为4类 (1)DOM操作 (2)事件处理 (3)动画 (4)AJAX jQuery3的新特性有哪些? 1. ...

  4. js与jQuery对象相互转换

    // jQuery-->JavaScript 两种方法: $(selector).get(index) ; $(selector)[index]; // JavaScript-->jQue ...

  5. 一天搞定CSS:初识css--01

    1)CSS:层叠样式表(英文全称:Cascading Style Sheets) 是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. C ...

  6. mysql之 innobackupex备份+binlog日志的完全恢复(命令行执行模式)

    前言:MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点.备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复. 1. ...

  7. 关于Atlassian无法注册的问题,请看过来

    好多童鞋在用团队构建工具git的时候,必然用到git的可视化工具sourceTree来管理项目一些操作,那么当我们下载完sourTree的时候,会有一个选择,已有账户登录还是免费账户,免费账户只有三十 ...

  8. 安卓餐厅点餐系统---针对浩然android工作室的一个小白的分析

    昨天刚把浩然android工作室的下载下来了,为了研究下点餐系统的架构,更好的完成手中的项目,便写出一个分析报告(小白的分析,忘见谅!) 本项目app主要用于餐厅无线订餐使用,功能突出餐厅的订餐需求, ...

  9. Spring学习(14)--- 基于Java类的配置Bean 之 @ImportResource & @Value 注解

    学习如何使用@ImportResource 和 @Value 注解进行资源文件读取 例子: 先创建一个MyDriverManager类(模拟读取数据库配置信息) package com.beanann ...

  10. .Net Core 图片文件上传下载

    当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...