现在越来越多的企业用memcached,今天听到一个校友给我讲起了关于memcached的一些介绍。
首先,他是一个用到协议的框架,支持TCP协议,通过socket连接,常用的端口是11211,为什么要支持协议呢?这主要是通过协议,可以屏蔽掉一些语言层的东西,也就是说与具体的语言无关,java可以用RMI啥的访问,c++有它的访问机制。
其次,memcached是单线程及NIO的,所以他的效率特别高,有多线程就会有锁,就会降低效率。
然后,他是基于key-value的,所以他就像操作一个map对象一样,常常作为数据库前一层的cache使用,如果没有命中,就会从数据库里查询。值得一提的是他的CAC操作,因为是同步环境,所以他有一套类似于AtomInteger的机制。如下所示:
for(;;){
next = now + 1;
if(now == checkNow(now))
return next;
}
只有now值没有改变的情况下,才说明没有其他线程没有改变now值,可以跳出循环,否则再自己取。
CAC也是一样的原理,不过他是通过“版本号”还标识被修改的次数的。
内存分配模块使用slab,不感兴趣,略过。
最后说一下,他被设计用在一个集群上,客户端所用的一个经典的算法-----一致性hash算法。
直观的看就是一个圈,大概分成0~2^32次方(一个无符号Int 的最大值)哥节点,通过一定的hash算法,来算出服务器的节点号,把要存的东西的key计算出hash值,都存在大于这个hash值的第一个节点上,如果在第二个节点和第三个节点上加一个节点的话,只需要改变第二个节点到现第三个节点之间的key重定向一下,存到现第三个节点上。
分享到:
相关推荐
memcached入门到理解 博文链接:https://johnnyhg.iteye.com/blog/237733
pdf文档 博文链接:https://wxw850227.iteye.com/blog/245293
**Memcached入门** Memcached是一款高性能的分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。本文将详细介绍Memcached的基础知识,并提供安装包和测试代码,帮助初学者...
【Memcached 入门文档】 Memcached 是一个广泛使用的开源软件,它被设计为一个高性能的分布式内存对象缓存系统,特别适用于动态Web应用程序。它的主要目标是减轻数据库的负载,通过将数据和对象存储在内存中,以...
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。 Memcached基于一个存储键值对的...
**PHP下的Memcached入门实例解析** Memcached是一种高性能的分布式内存对象缓存系统,它可以用于存储数据,以减少对数据库的直接访问,从而提高应用程序的响应速度。在PHP环境中,Memcached是常用的缓存解决方案之...
### Memcached入门详解 #### 一、Memcached简介与应用场景 **Memcached**是一种高性能、分布式内存对象缓存系统,用于通过减少数据库负载来加速动态Web应用的速度。它通过在内存中缓存数据来减少对数据库服务器的...
《深入理解Memcached》 Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提升数据访问速度。它的设计目标是通过将数据存储在内存中,提供快速的键值对存储服务,以...
这篇连载语言简洁、通俗易懂,非常适合 memcached 入门的人阅读。 因此我将它翻译成中文,发表在我的技术 blog( tech.idv2.com)上。然后将翻译结果合并后稍作加 工, 形成了这篇 PDF 文档,以方便阅读。
Memcached介绍、应用场景、运行机制 Memcached安装 Memcached启动,参数 Memcached连接、监控 Memcached客户端命令 Memcached的Java客户端实例 Memcached的客户端分布式原理 Memcached的服务器端运行原理 Memcached...
【PHP与Memcached入门】 PHP作为一款广泛应用的服务器端脚本语言,广泛用于Web开发,以构建动态交互式网站。为了提升网站性能,通常会引入缓存技术,而Memcached正是一个高效的分布式内存对象缓存系统,适用于加速...
memcached是一个高性能的分布式内存对象缓存系统,它被用来减少数据库负载,通过缓存数据和对象在内存中来帮助Web应用加快响应速度。它是基于libevent的事件处理机制,拥有简单的协议、内存存储方式,并且其分布式...
**Memcached分布式缓存入门** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。这个“Memcached分布式缓存入门”资料将引导初学者深入理解...
**Memcached快速入门** Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提高网站或应用程序的响应速度。它通过将数据存储在内存中,为应用程序提供快速访问,特别适合处理高并发和大数据量的...
总之,`.NET分布式缓存Memcached从入门到实战源码下载`这个资源提供了一个全面的学习平台,涵盖了Memcached的使用、集成、测试等方面,帮助开发者深入理解如何在.NET环境中高效地利用分布式缓存提升应用性能。...
**Memcached 实例详解** Memcached 是一个高性能的分布式内存对象缓存系统,它能够将数据存储在内存中,以减少数据库的访问压力,提高应用的响应速度。本实例将带你深入了解如何安装 Memcached 客户端,并学习如何...
3. "memcached入门到理解.pdf":适合初学者,从基础开始介绍,逐步深入理解Memcached。 4. "Java_Memcache.pdf":专注于Java环境下的Memcache使用,包括客户端库的使用示例和最佳实践。 通过这些资料,你可以系统地...
### Memcached 安装与配置详解 #### 一、Memcached 概述 Memcached 是一款高性能的分布式内存缓存服务器,由 LiveJournal 旗下的 Danga Interactive 公司的 Brad Fitzpatrick 领导开发。它被广泛应用于提高 Web ...