- 浏览: 2162600 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
- 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活。此时memcached或许是你想要的。
memcached是什么?
memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
memcached快么?
非常快。memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表, 因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。
Danga Interactive为提升Danga Interactive的速度研发了memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由web服务器和数据库服务器组成的集群完成的。memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及memcache失效时对数据库的访问速度。
memcached的特点
memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。
memcached的使用
memcached服务器端的安装 (此处将其作为系统服务安装)
下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)
1. 解压缩文件到
c:\memcached
2. 命令行输入
'c:\memcached\memcached.exe -d install'
3. 命令行输入
'c:\memcached\memcached.exe -d start'
该命令启动 memcached ,默认监听端口为 11211,通过 memcached.exe -h 可以查看其帮助。
.NET memcached client library
下载文件:https://sourceforge.net/projects/memcacheddotnet/
里面有.net1.1 和 .net2.0的两种版本 还有一个不错的例子。
应用
1. 将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目录
2. 引用Memcached.ClientLibrary.dll
3. 代码
namespace Memcached.MemcachedBench { using System; using System.Collections; using Memcached.ClientLibrary; public class MemcachedBench { [STAThread] public static void Main(String[] args) { string[] serverlist = { "10.0.0.131:11211", "10.0.0.132:11211" }; //初始化池 SockIOPool pool = SockIOPool.GetInstance(); pool.SetServers(serverlist); pool.InitConnections = 3; pool.MinConnections = 3; pool.MaxConnections = 5; pool.SocketConnectTimeout = 1000; pool.SocketTimeout = 3000; pool.MaintenanceSleep = 30; pool.Failover = true; pool.Nagle = false; pool.Initialize(); // 获得客户端实例 MemcachedClient mc = new MemcachedClient(); mc.EnableCompression = false; Console.WriteLine("------------测 试-----------"); mc.Set("test", "my value"); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test" if (mc.KeyExists("test")) //测试缓存存在key为test的项目 { Console.WriteLine("test is Exists"); Console.WriteLine(mc.Get("test").ToString()); //在缓存中获取key为test的项目 } else { Console.WriteLine("test not Exists"); } Console.ReadLine(); mc.Delete("test"); //移除缓存中key为test的项目 if (mc.KeyExists("test")) { Console.WriteLine("test is Exists"); Console.WriteLine(mc.Get("test").ToString()); } else { Console.WriteLine("test not Exists"); } Console.ReadLine(); SockIOPool.GetInstance().Shutdown(); //关闭池, 关闭sockets } } }
4. 运行结果
发表评论
-
UML
2010-08-09 11:39 1304开放分类:计算机技术计算机术语计算机科学 收藏分享到顶[6] ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 2977用WebService实现调用新 ... -
Cookie简介及JSP处理Cookie的方法
2010-07-29 09:28 973Cookie简介及JSP处理Cookie的方法 一.什么是 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1258一直想把数据库的默认 ... -
C#Winform调用网页中的JS方法
2010-07-12 11:07 2234其实还是还是相当的简单,本文将详细的用代码来展示一下如何调用, ... -
用WebService实现调用新浪的天气预报功能
2010-07-15 21:47 1510用WebService实现调用新 ... -
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
2010-06-09 22:16 1088一直想把数据库的默认 ... -
基于 VS 2010 阐述C# 4个特性
2010-05-28 09:26 1083基于 VS 2010 阐述C# 4个特性基于 VS 20 ... -
Google AdSense中文官方博客今天公布了AdSense内容广告与AdSense搜索广告的收入分成比例
2010-05-25 09:12 1130google adsense 的广告分成比例总算是公布出来了。 ... -
权限管理数据表设计说明
2010-05-21 15:19 1085权限管理数据表设计说明 B/S系统中的权限比C/S中的更显的 ... -
权限管理的设计方法
2010-05-20 09:26 1430权限管理的设计方法是 ... -
多表分页存储过程
2010-05-17 14:25 1063分页存储过程 在网站设计,网页开发中,是要被经常遇到的。 ... -
vs2010跟vs2008比较增加了哪些功能
2010-05-18 09:10 2255随着vs2010的发布,新的 ... -
COM域名难逃实名监管 CN域名简化流程抢用户
2010-05-13 09:22 1192互联网实名制的落实第 ... -
网站安全之XSS漏洞攻击以及防范措施
2010-04-29 08:59 1436在网站开发中,安全问题是重中之重的问题,特别像一个sql注入, ... -
深入了解ASP.NET运行内幕
2010-04-28 09:04 1172做事情要知道根本所在 ... -
WebBrowser中显示乱码
2010-04-22 09:09 1740最近在开发cs项目的时候,因为嵌套了一个网页,要用到we ... -
vps配置笔记(10)架设svn服务
2010-04-21 09:41 1268linux 下面架设svn服务器,有点难度,我找了好多资料,现 ... -
IEnumerable
2010-04-16 09:12 1274在平常的代码编写中,虽然不常用到Ienumerable 但却不 ... -
JS代码实例:实现随机加载不同的CSS样式
2010-04-19 13:38 1420如果让网页浏览者每次打开页面都有新的感觉,可以通过替换css样 ...
相关推荐
分布式缓存系统在现代Web开发中扮演...总的来说,分布式缓存系统Memcached是现代Web应用中不可或缺的工具。通过深入学习和实践,我们可以充分利用其优势,优化应用性能,减轻数据库压力,从而提供更高效、稳定的服务。
Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。这个“Memcached分布式缓存入门”资料将引导初学者深入理解Memcached的核心概念、工作原理以及...
"20120102 net下memcached 分布式缓存系统应用" 这个标题表明这是一个关于在.NET环境中使用Memcached作为分布式缓存系统的实践教程或参考资料。时间戳“20120102”可能指的是资料的创建日期,暗示了这是较早时期的...
常见的分布式缓存系统如Redis、Memcached等,它们支持键值对存储,提供了高并发、低延迟的数据访问能力。此外,本章可能还会涉及一致性哈希算法,它是分布式缓存中解决数据分片和负载均衡的关键技术。 “分布式缓存...
4. 内存分布式缓存:如Redis、Memcached,用于提高读取性能和减少数据库压力。 5. 数据分布与一致性:包括Gossip协议、Chubby锁服务等实现分布式一致性的方式。 另一方面,《分布式服务框架原理与实践》聚焦于服务...
本文将深入探讨.NET环境下使用Memcached作为分布式缓存的实践,基于提供的源码进行分析。 首先,`ABenNet.Knowledge.Memcached.sln`是一个Visual Studio解决方案文件,通常包含了多个项目,这些项目可能包括了...
分布式缓存系统在现代Web应用程序开发中扮演着至关重要的角色,尤其对于高并发、大数据量的场景,能够显著提升性能并降低数据库压力。本实例主要介绍如何使用C#语言集成和应用Memcached作为分布式缓存解决方案,以...
3. **常用分布式缓存系统**: - Redis:高性能的键值存储系统,支持丰富的数据结构,广泛应用在缓存和消息队列场景。 - Memcached:轻量级的缓存系统,主要用于Web应用的加速。 - Ehcache:Java平台的本地缓存...
综上所述,分布式缓存系统数据迁移的关键技术研究与优化设计,能够有效提高大规模数据处理系统的性能,确保系统的高可用性和稳定性。这对于IT行业特别是分布式系统的设计与优化具有重要的理论和实践价值。
Memcached是一款广泛使用的开源高性能分布式内存对象缓存系统,它能够减轻数据库的负载,提高应用程序的响应速度。在.NET环境中,开发人员可以借助特定的类库来集成Memcached,实现.NET应用的分布式缓存功能。本文将...
常见的分布式缓存系统如Redis、Memcached和Hazelcast等,它们都有各自的特点和优势。 **Redis** 是一个高性能的键值对存储系统,支持多种数据结构,如字符串、哈希、列表、集合和有序集合,同时提供了丰富的操作...
Memcached是一个高性能、分布式内存对象缓存系统,常用于加速动态Web应用,通过将数据存储在内存中,减少对数据库的直接访问,从而提高了应用性能。 一、Memcached的基本概念与工作原理 1. **分布式**: Memcached...
银联的NoSQL数据库技术与分布式缓存的异地多活实践,为我们展示了如何在金融领域应用先进的技术来提升服务质量和用户体验。这不仅要求技术的先进性,还需要深入理解业务需求,并结合严格的运维管理,才能实现如此...
Redis是一种高性能的Key/Value分布式缓存系统,其名称源于“Remote Dictionary Server”的缩写。作为NoSQL数据库,Redis与其他键值存储系统如Memcached有相似之处,但提供了更丰富的数据结构,包括字符串(string)...
分布式数据管理是构建分布式缓存系统的核心,其目标是实现多节点环境中的缓存数据的有效管理。一致性的哈希算法是一种常用的分布式数据管理模型,它通过哈希函数将数据分布到一个虚拟环上,每个节点负责环上的一个...
5. **分布式缓存**:如Redis、Memcached,用于缓解数据库压力,提高数据访问速度。理解其数据结构、过期策略以及事务处理是必要的。 6. **分布式消息队列**:如RabbitMQ、Kafka,提供异步解耦,提高系统响应速度和...
Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库负载,提高页面加载速度,从而显著提升网站的整体性能。Memcached的设计理念是简单而高效,它将数据存储在内存中,通过...
分布式缓存系统如Oracle Coherence、Memcached和Terracotta等,已在资源供给、数据管理、安全性和自适应性等方面取得了显著进展。然而,这些系统在处理热点数据分布不均衡和数据迁移策略等方面仍有待改进。例如,...
5. 分布式缓存:如Redis、Memcached等,它们在缓解数据库压力、提高数据访问速度方面的作用。 6. 分布式事务管理:2PC、补偿事务(TCC)、Saga等事务管理策略在分布式环境中的应用。 7. 数据库分片技术:如Mycat,...