Memcached在windows下的基本使用
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下的基本使用的更多相关文章
- memcached 在windows下安装及启动
memcached 在windows下安装及启动 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数, ...
- (转)Memcached 在windows下的java使用
Memcached 在windows下的java使用 研究这个东东主要是为了解决在教务管理中选课系统的大并发情况下数据库频繁读写造成速度慢的问题,但要使用WEB服务器的内存,是不是可靠还需要验证, ...
- Memcached在windows下安装与使用
建议:windows系统下仅为测试所有,生产环境下服务端应使用Linux系统. 本文最后更新于:2014-08-03 18:24 原文:http://www.yaosansi.com/post/mem ...
- memcached在Windows下的安装
memcached简介详情请谷歌.这里介绍如何在windows下安装. 1.下载 下载地址:http://download.csdn.net/detail/u010562988/9456109 ...
- memcached在windows下多实例并存
文章来源:http://blog.csdn.net/xingxing513234072/article/details/39343999 memcached.exe的-d install命令安装时其他 ...
- memcached在windows下的安装与命令使用方法
先下载memcached for win32 下载地址1:http://filemarkets.com/fs/8tdo6ndg41d919599/ 下载地址2:http://www.400gb.com ...
- Memcached在windows下的安装和使用
1.下载memcached安装文件及c#开发所需的dll 2.解压<memcached-1.2.6-win32-bin.zip>,并cmd,定位到解压目录. 3.安装服务:输入命令 mem ...
- Memcached在Windows下的配置和使用
Memcached学习笔记---- 安装和配置 首先,下载Memcached相关文件. 打开控制台,进入Memcached主程序目录,输入: memcached.exe -d install //安装 ...
- Memcached在Windows下的配置和使用(转)
出处:http://www.cnblogs.com/sunniest/p/4154209.html Memcached学习笔记---- 安装和配置 首先,下载Memcached相关文件. 打开控制台, ...
随机推荐
- [原创]CentOS下Mysql的日志回滚
一. 环境: a) Centos-6.5-x64位操作系统. b) 安装mysql.命令:yum install mysql* 二. 配置 a) ...
- R笔记(1):formula和Formula
#####开一个新的系列.关于R的一些笔记,就是遇到过的一些问题的简单整理.可能很基本,也可能没什么大的用处,作为一个记录而已.------------------------------------ ...
- matlab错误:Subscript indices must either be real positive integers or logicals.
matlab错误:Subscript indices must either be real positive integers or logicals. 中文解释:下标索引必须是正整数类型或者逻辑类 ...
- c++概括
c++到底是什么样的语言 在过去的几十年,计算机技术的发展令人吃惊,当前的笔记本电脑的计算速度和存储信息的能力超过了20世纪60年代的大型机.20世纪七十年代,C和Pascal语言引领人们进入结构化编 ...
- python-广度优先搜索
广度优先搜索 下面我们来来BFS算法策略: 比如:我们要从双子峰---->金门大桥,最短路径如何? 我们利用广度优先搜索来一步步求解,注意广度优先搜索在于的关键在于"广",也 ...
- 一天搞定CSS:表单(form)--20
1.表单标签 2.input标签属性与取值 代码演示 <!DOCTYPE html> <html> <head> <meta charset="UT ...
- laravel 服务容器实现原理
前言 通过实现laravel 框架功能,以便深入理解laravel框架的先进思想. 什么是服务容器 服务容器是用来管理类依赖与运行依赖注入的工具.Laravel框架中就是使用服务容器来实现 ** 控制 ...
- javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题
前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...
- Dojo初探之2:设置dojoConfig详解,dojoConfig参数详解+Dojo中预置自定义AMD模块的四种方式(基于dojo1.11.2)
Dojo中想要加载自定义的AMD模块,需要先设置好这个模块对应的路径,模块的路径就是这个模块的唯一标识符. 一.dojoConfig参数设置详解 var dojoConfig = { baseUrl: ...
- Thinkphp 3.0-3.1版代码执行漏洞
近日360库带计划中播报的ThinkPHP扩展类库的漏洞已经查明原因:系官方扩展模式中的Lite精简模式中存在可能的漏洞(原先核心更新安全的时候 并没有更新模式扩展部分,现已更新).对于使用标准模式或 ...