首页 > 代码库 > (一)memcached 简介

(一)memcached 简介

什么是memcached?

    memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载。它通过内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库网站的速度。memcached基于一个存储键/值对的hashmap。

    在使用过程中,发现memcached和Hibernate的查询缓存作用相当,都是把查询频繁的数据并且更新不频繁的数据放到内存中,然后每次读取的时候,从内存中读取,这样就增加了访问效率。类似于cpu的高速缓存。

    也就是说你不用去离家远的大超市去买东西,你家楼下会备份一份,一旦没有了再去大超市。

本质上是cache?

    学过高速缓存,是一种存储速度比随机存储器更快的RAM,协调cpu和内存处理数据的速度。还有几种常见的cache,浏览器缓存,我们浏览器中有缓存,例如,把一些信息存放在cookie中;服务器缓存,例如,把一些信息可以存放在session中;CDN,不同的CDN算法,机制不同,可以把资源分发到各个节点上,用户在访问静态资源时会路由选择与之最近的资源;数据库缓存,Hibernate的查询缓存;OS cache,内存中存在对于硬盘读写的缓冲区域。

memcached官方网站

    http://memcached.org/


memcached运行原理图




    首次访问会从RDBMS中取得数据并保存在memcached,第二次访问的时候会从memcached中取得数据显示在页面中。

与memcached类似的还有什么?

    国外:Tokyo Cabinet:http://tokyocabinet.sourceforge.net/index.html(日本mixi.jsp公司开发)

    国内:MemcacheDB:http://memcachedb.org(新浪开源Team开发)

memcached 的主要特点

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

    2、基于libevent时间处理。

    libevent一套跨平台事件处理接口封装,能够兼容包括这些操作系统:windows、linux、BSD、Solaris等操作系统的事件处理。memcached使用libevent来进行网络并发连接处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。

    3、自出内存存储处理。

    4、基于客户端的memcached分布式。客户端程序库,通过分布式算法找到对应的服务器。(具体见此博客)



下一篇memcached 安装和实践demo





(一)memcached 简介