Memcached的原理和使用介绍
介绍:
Memcached是国外社区网站LiveJournal的技术团队开发的高性能分布式内存缓存服务器。
使用目的:
memcached的一般使用目的就是缓存数据库查询结果,减少对数据库的访问次数,以提高动态web应用的速度,提高可扩展性。
memcached运行图:
memcached介绍:
谁在使用memcached:
Yahoo,FaceBook,Twitter,MIXI以及wiki百科等国外公司。
国内公司有:
搜狐微博,人人网,赶集网,新浪网等。
与Memcached相似的产品都有哪些:
tokyo Cabinet 日本鬼子的产品
MemcacheDB 新浪开发的产品
sohutw—memcached 搜狐微博的产品
BeansDB 豆瓣的产品
tmcached 黑夜路人的产品
memcached的主要特点:
基于CS架构,协议简单。
基于libEvent的事件处理。
自主内存存储处理。
基于客户端的memcached分布式。
数据存储方式:
1,Slab Allocation
Slab Allocation的方法比较简单,就是按照预先规定的大小,将申请的内存分割成特定大小的块,已解决内存碎片的问题。
其原理就是 将分配的内存分割成各种尺寸的块(chunk),然后把相同尺寸的块组成组(chunk 集合)。
术语表:
Page:分配给slab的内存空间,默认是1Mb,分配给slab之后根据slab的大小切分chunk。
chunk:用于缓存数据的空间。
slab class:chunk的组。很多大小相同的slab组成的chunk。
Slab Allocation的缺点:
由于chunk的大小是固定的,如果128k的chunk存放100k的数据,那么28k的空间就浪费了。
数据过期的方式:
1,lazy Expiration:memcached不会监视记录是否过期,而是在get数据的时候检查数据的时间戳,看是否过期。因此memcached不会再监视数据是否过期上面耽误cpu的时间。
2,LRU 。Least Recently Used,最近最少使用的空间会在空间不足的情况下被释放,让给新数据。
基于客户端的memcached分布式:
根据key值获得key在内存中的地址,*Key++%totalServer = n,n为服务器集群代号为n的机器,把key值存放在此台机器上。从此写入和读取都从这台机器上操作。
- 大小: 35.7 KB
- 大小: 44 KB
- 大小: 36 KB
- 大小: 74.7 KB
分享到:
相关推荐
首先,Memcached 1.4.3是Memcached的稳定版本,它提供了高速的数据存储和检索功能,适用于快速读取大量数据的场景。此版本同时支持32位和64位操作系统,这意味着无论你的服务器架构如何,都可以顺利地部署和使用。在...
**标题解析:** "memcached1.5.6.rar" 这个标题表明这是一个关于memcached软件的压缩包,具体版本是1.5.6。memcached是一个高性能、分布式的内存对象缓存系统,常用于减轻数据库负载,提高Web应用性能。 **描述解读...
以下是关于 memcached 的详细介绍,以及在 Linux 环境下的安装步骤。 1. **memcached 简介**: - memcached 是由 Danga Interactive 开发的开源软件,最初为 LiveJournal 服务设计,现在广泛应用在各种 Web 应用中...
【描述】"memcached-笔记资料"暗示了本资料主要包含关于Memcached的使用、配置、优化和实践经验,可能涵盖了基础概念、安装步骤、命令行操作、最佳实践等多方面的内容。 【标签】"memcached"明确指出了讨论的主题,...
"memcached(十一)memcached-session-manager" 这个标题指的是一个关于memcached缓存系统与session管理的系列教程的第十一部分。在这个教程中,重点可能是如何使用memcached来存储和管理Web应用中的session数据,以...
Java连接Memcached是一种常见的缓存操作,特别是在处理大数据量或者需要快速响应的Web应用程序中。Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提高网站性能。下面我们将详细探讨如何在...
"memcached较全面介绍.docx"可能是关于Memcached的基础教程,包括它的安装、使用和优势;"Nginx+Tomcat+Memcached部署.docx"则可能详细说明了如何在Nginx反向代理下,结合Tomcat和Memcached进行部署,以实现Session...
通过 Telnet 连接到 Memcached 服务器并执行 `stats` 命令,可以获取一系列关于 Memcached 实例的关键信息,包括: 1. **pid**:进程ID,显示 Memcached 服务的运行状态。 2. **uptime**:服务自启动以来的时间,...
关于memcached的数据删除机制,它采用了一种称为LazyExpiration的策略,即不会立即删除过期数据,而是等到空间不足需要重新使用时才会清理。此外,memcached支持使用最近最少使用(LRU)策略来有效删除缓存数据,以...
2. **安装** - 表示这个话题是关于memcached的安装过程,可能包括下载、配置、启动和测试服务等步骤。 **压缩包子文件的文件名称列表:** 1. **memcacheSetup.exe** - 这很可能是安装程序文件,用户双击运行后可以...
- **memcached**:强调了这个压缩包是关于memcached的,是一个内存缓存系统。 - **缓存**:指出memcached的主要功能是作为缓存系统,用于提高数据访问速度。 综上所述,这个压缩包提供了一个在Linux环境下安装和...
如果你在使用过程中遇到问题,可以访问提供的链接:[江哥技术博客](http://www.0817home.com/),寻求江哥的帮助,他可能有更多关于Memcached的深入讲解和技术支持。 总结来说,Memcached是一个强大的缓存解决方案,...
总之,"Nagios-Plugins-Memcached-0.02.tar.gz"是一个对Memcached服务器进行性能监控的Nagios插件,通过集成它,你可以获得关于Memcached内存使用、连接状态等重要信息的实时反馈,以便更好地管理和维护你的Web应用...
3. **Web.config**: 配置文件,可能会包含关于memcached连接配置的信息,如服务器地址、端口、默认缓存过期时间等。 4. **MemeCache.aspx.cs**: 与MemeCache.aspx对应的后台代码文件,包含了具体的C#逻辑,如添加、...
如果一切正常,你应该能看到关于 Memcached 的统计信息。 6. **应用集成** 最后,你可以将 Memcached 集成到你的 PHP、Python、Java 或其他语言的应用程序中,利用其缓存功能提高性能。 通过以上步骤,你就成功...
### Memcached源码剖析知识点详解 #### 一、背景与概述 **Memcached** 是一款高性能的分布式内存对象缓存系统...关于 Memcached 的更多细节和技术文档,请参考官方文档和其他技术资料,以获取最新的信息和技术支持。
"memcached"表示这是关于Memcached的讨论,"php5.4.7"则指出该资源适用于较旧版本的PHP,即5.4.7。对于使用旧版PHP环境的开发者来说,这样的资源尤为宝贵,因为新版本的PHP可能不再支持某些旧的扩展。 【压缩包子...
标题中的"memcached_functions_mysql"暗示了我们讨论的是关于Memcached在MySQL环境中的使用,特别是与MySQL相关的函数。Memcached是一种高性能的分布式内存对象缓存系统,常用于加速动态Web应用,通过在内存中存储...