一。MemCached下载

服务端下载:http://memcachedproviders.codeplex.com/

client下载:

path=/trunk">http://sourceforge.net/p/memcacheddotnet/code/HEAD/tarball?path=/trunk

二,服务端的安装及配置

1)        解压缩文件到c:\memcached(也能够选择任何位置)

2)        命令行输入 'c:\memcached\memcached.exe -d install'

3)        命令行输入 'c:\memcached\memcached.exe -d start' ,该命令启动 Memcached 。默认监听port为 11211

4)        通过 memcached.exe -h 能够查看其帮助

三,client的安装及引用

对于client操作服务端,我们有多种可选方式,在这里,我们选择使用dll.因为dll的方式生成较快。而且避免了繁琐的配置文件中的设置,比較方便。对于telnet命令等等。我们能够在服务端使用来检查数据,查看cache的命中率等。

1.关于Dll的引用

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGhjMTEwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

下载完Dll之后,在项目中加入如图引用;

2,可能出现故障

我在引入log4net跟Memcached.ClientLibray的时候。出现引入了,类文件中面也加入了using,可是以生成就报错,后来发现是.net framework版本号的问题。将版本号从下图版本号改为.net framework 4之后生成就ok了。

四,Memcached机制深入了解

1,基于C/S架构,协议简单

1)        C/S架构,此时memcached为服务端。我们能够使用各种client程序连接memcachedserver。

2)        Memcached的serverclient通信不使用XML等格式,而使用简单的基于文本行的协议,因此,通过telnet也能在memcached上保存数据,取得数据。

2。基于libevent的事件处理

1)        Libevent是一套跨平台的事件处理接口的封装。能够兼容包含这些操作系统:Windows/Linux/BSD/Solaris等操作系统的事件处理。

2)        Memcached使用libevent来进行网络并发连接的处理,能够保持在非常大的并发情况下,仍旧能够保持高速响应的能力。

3。内置内存存储方式

为了提高性能。memcached中保存的数据都存储在memcahced内置的内存存储空间中。

因为数据仅存在于内存中,因此重新启动memcached,重新启动操作系统会导致所有数据消失。

另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自己主动删除不使用的缓存。Memcached本身是为缓存而设计的server,隐藏并没有过多考虑数据的永久性问题。

4。基于client的分布式

Memcached虽然是“分布式”缓存server,但服务端并没有分布式功能更。各个memcached不会相互通信以共享信息。那么,如何进行分布式。这全然取决于client的实现。有兴趣的能够百度下hash算法。

代码体会:

五,memcached与session

1)        生命周期不同

2)        要解决的问题重点不同

六,memcached与Cache

cache作为。Net中状态管理的东东,感觉也相当强大:1,缓存依赖:能够依赖或文件,数据库,组合的依赖。而且提供了数据过期的通知机制,方便在我们在过期的时候及时更新数据。2,通知机制的使用:曾经比較早的时候,对于数据过只是期,使用的还是轮询机制,类似循环查看数据有没有被更新,假设被更新了,则此时更新cache。

可是总感觉轮询机制非常怪怪的。比方,我在家烧一壶水。不应该是我总去看水开没开,而是要水开了然后有个啥声音告诉我水开了。通知机制就是这个意思,至于通知机制的原理,能够去查一下observer模式。在23中设计模式中。这个用的还是蛮多的。

当初使用memcached的时候。因为cache的原因,就自然想到了这个通知机制。查了一下,貌似memcached是没有这个的,要想自己做一个过期更新,也仅仅能使用轮询机制。

可是从memcached的使用场景去思考,我们会发现事实上有过期时间就足够了。

七,memcached的适用场景

1)        变化频繁,具有不稳定性的数据,不须要实时入库(比方用户在线状态,在线人数)

2)        门户站点的新闻的等,认为页面静态化仍不能满足要求。能够放入到memcached中(配合jquery的ajax请求)

……

八。memcached的安全性问题

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGhjMTEwNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

因为memcached没有内置身份验证机制。造成了使用telnet訪问ip+port就能够登录的情况。然后里面的数据就成了待宰的羔羊。为了避免防止被黑掉。我们能够在memcachedserver上对外关闭掉訪问port,仅仅同意本机程序訪问。

九,类似技术的比較

1,Redis

1)        支持很多其它value类型

2)        可持久化:redis会周期性的把更新的数据写入磁盘或者把改动操作写入追加的记录文件。而且在此基础上实现了master-slave(主从)同步

3)        支持主从同步:数据能够从主server向随意数量的从server上同步。从server能够是关联其它从server的主server。

这使得Redis可运行单层树复制。存盘能够有意无意的对数据进行写操作。

因为全然实现了公布/订阅机制,使得从数据库在不论什么地方同步树时,可订阅一个频道并接收主server完整的消息公布记录。同步对读取操作的可扩展性和数据冗余非常有帮助。

2,EhCache

1)        纯Java的进程内缓存框架。具有高速、精干等特点,是Hibernate中默认的CacheProvider。

2)        开源Java分布式缓存: 主要面向通用缓存,Java EE和轻量级容器。

它具有内存和磁盘存储。缓存载入器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。

。。。。。。。

Memcached在.net中的应用的更多相关文章

  1. Memcached在.Net中的基本操作

    Memcached在.Net中的基本操作 一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅 ...

  2. memcached在项目中的应用

    这一篇将以介绍一个memcached在项目中的应用.假设我们有一个web应用,里面有商品信息,文章信息,评论信息,其他信息,我们希望对其做缓存,那么我们在ServiceImpl层就不在调用DAOmpl ...

  3. memcached在Java中的应用以及magent的配置-每天进步一点点

    memcached在Java中的应用: http://nhy520.iteye.com/blog/1775893 magent配置memcached分布式集群的应用: http://www.jians ...

  4. Memcached在企业中的应用

    Memcached简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitz ...

  5. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  6. 【转】 Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  7. 【转载】Memcached在.Net中的基本操作

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  8. Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作 - Edison Chou

    一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...

  9. memcached真实项目中的应用

    上一篇memcached介绍及基本使用介绍了memcached的一些基本概念和一个范例.这一篇将介绍一个memcached在实际项目中的应用

随机推荐

  1. 使用SetLocaleInfo设置时间后必须调用广播WM_SETTINGCHANGE,通知其他程序格式已经更改

    uses messages; Procedure SetDateFormat; //设置系统日期格式var buf:pchar; i:integer; p:DWORD;begin getmem(buf ...

  2. Swift - 使用NSUserDefaults来进行本地数据存储

    NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaul ...

  3. 免费APP在线測试工具以及其用法

    免费APP漏洞安全检測工具:http://safe.ijiami.cn/ 漏洞分析是爱加密推出免费 APP 漏洞分析平台,服务包含一键对APK 进行签名数据信息採集.内部配置信息採集.市场渠道相关信息 ...

  4. 屏幕对象的F1/F4输入帮助功能

    1.HELP-REQUST[FOR{LOW|HIGH}]字段的F1帮助 当选择SAP屏幕功能的制定字段按F1键时可以调关注用自定义的程序或者系统帮助文件,该功能通常称为F1帮助. TYPES:syst ...

  5. SetFocus、SetCapture和SetActiveView的区别

    1. SetActiveView是MFC框架内的一个函数, 而不是SDK中的函数, 也就是说SDK中没有ActiveView这个概念, 只有在MFC中才有2. SetFocus是SDK中的函数(当然M ...

  6. 【ASP.NET Web API教程】4.2 路由与动作选择

    原文:[ASP.NET Web API教程]4.2 路由与动作选择 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 4.2 Routing ...

  7. Android菜鸟的成长笔记(2)——第一个Android应用

    原文:Android菜鸟的成长笔记(2)--第一个Android应用 上一篇:Android菜鸟的成长笔记(1)--Anddroid环境搭建从入门到精通 在上一篇Android菜鸟的成长笔记(1)中我 ...

  8. vb6源码后台点击任意窗口指定坐标XY位置,支持FLASH和一般的游戏

    vb6源码后台点击任意窗口指定坐标XY位置,支持FLASH和一般的游戏,支持每个网页用不同的IP登陆,支持多线程自动点击 适合自动打怪,游戏练级,配合自动识图功能,自动验证码技术,可以实现更多功能. ...

  9. K-means clustering (K-means聚类)

    问题: K-所有值聚类是无监督学习算法 设数据集.当中,. 如果这个数据能够分为类. 把这个问题模型化: , 当中代表第类的聚点(中心点.均值). 该模型能够用EM算法进行训练: 初始化,. E步:固 ...

  10. AMR音频编码器概述及文件格式分析

    全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的. 一.分类 1. AMR: ...