Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

站下的session性能并不高,所以造成人们一种印象,大型WEB项目使用JAVA的错觉,致使很多人吐槽微软不给力,其实这好比拉不出怪地球引力,本文介绍Memcached在ASP.net Web项目中的应用,智联招聘,招商银行,农业银行等都是采用解决方案,在性能上是绝对不亚于任何大型网站.同时Memcached还能很方便建立起服务器集群,对于大型解决方案,服务器集群的重要性不言而喻;

1.准备工作.
要在项目中使用到Memcached,需要准备好如下条件:
服务器环境:安装Memcached服务到服务器上
a.下载Memcached安装文件
b.以管理员身份运行CMD 在下载的Memcached服务安装路径下安装Memcached服务(命令行:X:\memcached.exe -d install)
C.检查服务安装

d.启动服务 命令行 memcached.exe –d start  当然可以直接在计算机服务管理来操作
到这里Memcached服务就搭建完成了,那么如何运用到.NET项目中区呢?
2.下载.NET Memcached lbr
从文件..trunk\clientlib\src\clientlib\bin\2.0\Debug下拷贝出4个DLL文件Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll,添加引用到项目中去
3.初始化Memcached

从“服务”中可以看到Memcached Server处于“正在运行”的状态中,如果是停止的,右键“启动服务”就可以了,当然可以memcached.exe –d start来启动

主要的缓存代码:

using System;
using System.Data;
using System.Web;
using Memcached.ClientLibrary;public class Cache_Info
{private readonly static string CacheKey = "Info_key";/// <summary>/// 缓存是否存在/// </summary>/// <param name="pMC"></param>/// <param name="pKey"></param>/// <returns></returns>private static bool IsCache(MemcachedClient pMC,string pKey) {if (pMC.KeyExists(pKey)){return true;}else {return false;}}/// <summary>/// 覆盖缓存/// </summary>/// <param name="pKey"></param>/// <param name="pObject"></param>/// <returns></returns>private static bool StoreCache(string pKey,object pObject) {MemcachedClient mc = new MemcachedClient();mc.EnableCompression = true;bool _result = false;if (IsCache(mc, pKey)){if (mc.Get(pKey) == null){mc.Set(pKey, pObject);//缓存存在,强行覆盖}else {mc.Replace(pKey, pObject);//缓存存在,强行覆盖}_result = true;}else {mc.Add(pKey, pObject);//第一次加载缓存_result = true;}return _result;}/// <summary>/// 清除缓存/// </summary>/// <param name="pKey"></param>/// <returns></returns>public static bool RemoveCache(string pKey) {MemcachedClient mc = new MemcachedClient();mc.EnableCompression = true;return mc.Delete(pKey);}/// <summary>/// 获取数据/// </summary>/// <returns></returns>public static DataTable GetInfo(){#region 通过缓存来获取DataTable的数据MemcachedClient mc = new MemcachedClient();mc.EnableCompression = true;if (mc.Get(CacheKey) != null){return mc.Get(CacheKey) as DataTable; //直接从缓存取数据}else{DataTable dt=DB_Info.GetInfo();  //第一次加载将数据存入缓存中if (StoreCache(CacheKey, dt)){return mc.Get(CacheKey) as DataTable;}else{return null;}}#endregion#region 直接从数据库获取DataTable//return DB_Info.GetInfo();#endregion}}

转载于:https://www.cnblogs.com/muxueyuan/p/7418115.html

Memcached在Asp.net下的应用相关推荐

  1. Asp.Net下的DataGrid的多层表头

    先看下表: 业务员 地 区 北京 上海 深圳 张三 100 200 300 实际上Asp.Net下的DataGrid只不过是一个HtmlTable,只不过在HtmlTable的基础上添加了很多属性.方 ...

  2. 在ASP.NET下实现数字和字符相混合的验证码

    作者:kwklover(原作)        出处:CSDN 在ASP.NET下实现数字和字符相混合的验证码 经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在CSDN,DEV-CLUB ...

  3. Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)

    现在随着FlashGet和xunlei等下载工具的日益普及,下载网站的一些下载地址都能直接被捕获到,,但是有些时候为了防盗链或权限限制不想对地址进行暴露,对于Asp.net下的防盗链有很多方法,我这里 ...

  4. Uploadify在asp.net下使用Demo

    为了使自己以后不再去网上搜索,特记录下来 从uploadify官网http://www.uploadify.com/上下载文件 必要的文件: 1.jquery的js文件 2.jquery.upload ...

  5. asp.net下的串口编程

    最近,公司这边有几个新的项目即将启动!因为公司主要是做电力载波通信产品,诸如集中控制器,路灯控制器等.在应用软件这部分基本上就我一个人,其他相关文档还在整理中.应用软件部分,主要就是和集中控制器通信, ...

  6. 综述ASP.NET下的AJAX模式

    本文内容: 一.导言 二.XMLHttp+WebForm模式 三.XMLHttp+HttpHandler模式 四.ASP.NET 2.0/3.5回调模式 五.AJAX框架模式 ------------ ...

  7. ASP.NET下MVC设计模式的实现

    1 MVC设计模式简介 MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础.MVC结构是为那些需要为同样的数据提供多个视图的应用程 ...

  8. ASP.Net下使用ExtJS报“Ext未定义”错误的原因

    新项目,客户要求界面要"炫".经过简单对比,打算尝试在ASP.Net下引用ExtJS3.4来满足用户需求. 根据项目需要,第一个实例,选择了在ASP.Net下显示树形列表(Tree ...

  9. ASP.NET下英文及中文汉字的验证码控件

    本文转自http://bbs.msproject.cn/Default.aspx?g=posts&t=660 翻译 Nataraj K. 著Image Verifier - Custom Co ...

最新文章

  1. android studio val,Kotlin学习笔记之const val与val
  2. libuv 中文编程指南(零)前言
  3. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | native 函数查询 | dalvik_system_DexFile.cpp#defineClassNative 函数 )
  4. 【转】tftp命令详解
  5. java 服务器 时间_java 获取服务器的时间,年月日时分秒
  6. 一男子蒙冤入狱10天,竟是 AI 认错了!
  7. Jenkins : 构建伟大,无所不能 —— docker 安装Jenkins(最新版)
  8. sparkwordcount
  9. 一台服务器装两个sql server_超详细的centos7部署zabbix监控服务器教程分享
  10. 在SQLite数据库中获取新插入数据自增长的ID值
  11. 视易精通收银服务器自动关机,视易精通量贩式收银系统操作手册3.0
  12. 机器学习基石1 学习笔记
  13. 程序员真的是吃青春饭的行业吗?
  14. 数据架构建设方法及案例
  15. 小米4S_2015911_官方线刷包_救砖包_解账户锁
  16. 20155318 《Java程序设计》实验四 (Android程序设计)实验报告
  17. 西部学刊杂志西部学刊杂志社西部学刊编辑部2022年第14期目录
  18. 外卖CPS用抖音高权重号评论引流,日引万粉
  19. Python中的repr()函数与 ‘!r‘的作用
  20. 数组的定义、初始化和使用

热门文章

  1. 科技公司狂挖高校AI学者:涸泽而渔还是产学双赢
  2. ICCV2017 | 一文详解GAN之父Ian Goodfellow 演讲《生成对抗网络的原理与应用》(附完整PPT)
  3. 还在用Spring Security?推荐你一款使用简单、功能强大的权限认证框架
  4. 关闭线程池 shutdown 和 shutdownNow 的区别
  5. Netflix创始人:我不要求996,一样市值1万亿
  6. 为什么ConcurrentHashMap的读操作不需要加锁?
  7. 深入浅出统计学(十五)相关与回归及PYTHON实现
  8. EMNLP 2021 | 多标签文本分类中长尾分布的平衡策略
  9. 韩国为三星芯片数据硬刚美国,后者此前警告:不交就等着,后手有的是
  10. 清华教授穿红色短裤火“出圈”,网友:哈哈哈哈太真实了