0

0

Memcached在.net中的应用

黄舟

黄舟

发布时间:2017-03-13 13:18:22

|

1687人浏览过

|

来源于php中文网

原创

一,服务端的安装及配置

1)        解压缩文件到c:\memcached(也可以选择任意位置)

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

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

4)        通过 memcached.exe -h 可以查看其帮助

二,客户端的安装及引用


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

1.关于Dll的引用

 

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

2,可能出现问题

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

 

三,Memcached机制深入了解

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

1)        C/S架构,此时memcached为服务端,我们可以使用各种客户端程序连接memcached服务器。

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

2,基于libevent的事件处理

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

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

3,内置内存存储方式

        为了提高性能,memcached中保存的数据都存储在memcahced内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached,重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。Memcached本身是为缓存而设计的服务器,隐藏并没有过多考虑数据的永久性问题。

4,基于客户端的分布式

      Memcached尽管是“分布式”缓存服务器,但服务端并没有分布式功能更。各个memcached不会相互通信以共享信息。那么,怎样进行分布式,这完全取决于客户端的实现,有兴趣的可以百度下hash算法。


代码体会:

 

A1.art
A1.art

一个创新的AI艺术应用平台,旨在简化和普及艺术创作

下载

四,memcached与session

1)        生命周期不同

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

五,memcached与Cache

        cache作为。Net中状态管理的东东,感觉也相当强大:1,缓存依赖:可以依赖或文件,数据库,组合的依赖,并且提供了数据过期的通知机制,方便在我们在过期的时候及时更新数据。2,通知机制的使用:以前比较早的时候,对于数据过不过期,使用的还是轮询机制,类似循环查看数据有没有被更新,如果被更新了,则此时更新cache。但是总感觉轮询机制很怪怪的,比如,我在家烧一壶水,不应该是我总去看水开没开,而是要水开了然后有个啥声音告诉我水开了。通知机制就是这个意思,至于通知机制的原理,可以去查一下observer模式,在23中设计模式中,这个用的还是蛮多的。

       当初使用memcached的时候,由于cache的原因,就自然想到了这个通知机制,查了一下,貌似memcached是没有这个的,要想自己做一个过期更新,也只能使用轮询机制。但是从memcached的使用场景去思考,我们会发现其实有过期时间就足够了。

六,memcached的适用场景

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

2)        门户网站的新闻的等,觉得页面静态化仍不能满足要求,可以放入到memcached中(配合jquery的ajax请求)

……

七,memcached的安全性问题

 

     由于memcached没有内置身份验证机制,造成了使用telnet访问ip+端口就可以登录的情况,然后里面的数据就成了待宰的羔羊。为了避免防止被黑掉,我们可以在memcached服务器上对外关闭掉访问端口,只允许本机程序访问。

八,相似技术的比较

1,Redis

1)        支持更多value类型

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

3)        支持主从同步:数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

2,EhCache

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

2)        开源Java分布式缓存: 主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。

。。。。。。。。。

 以上就是Memcached在.net中的应用的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

58

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

52

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

24

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

10

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

7

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

406

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

231

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

194

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

150

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
深入剖析redis教程
深入剖析redis教程

共55课时 | 8.1万人学习

Memcached手册
Memcached手册

共0课时 | 0人学习

韩顺平Memcached视频教程
韩顺平Memcached视频教程

共10课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号