MemCached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。

现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。

 

memcached 官网https://memcached.org

memcached 源码https://github.com/memcached/memcached

 

目前,Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。

但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。

memcached是高性能的分布式内存缓存服务器,其使用目的是通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

 

1、MemCached具有以下的特点

  • 协议简单
  • 基于libevent的事件处理
  • 内置内存存储方式
  • memcached不互相通信的分布式


1) 协议简单

memcached的服务器客户端通信并不使用复杂的XML等格式, 而使用简单的基于文本行的协议。

因此,通过telnet 也能在memcached上保存数据、取得数据。

 

2)基于libevent的事件处理

libevent 是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。

即使对服务器的连接数增加,也能发挥O(1)的性能。

memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。

 

3) 内置内存存储方式

为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。

由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失

另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。

memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

 

4) memcached不互相通信的分布式

memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。

各个memcached不会互相通信以共享信息。

那么,怎样进行分布式呢? 这完全取决于客户端的实现。

本连载也将介绍memcached的分布式。

 

2  MemCached 安装

1) 下载

libevent 下载, 最新稳定版 libevent-2.0.21-stable.tar.gz

memcached 下载, 最新稳定版 v1.4.15.tar.gz

 

2) 安装

libevent 安装

tar zxvf libevent-2.0.21-stable.tar.gz

sudo mkdir -p /opt/libevent-2.0.21

./configure --prefix=/opt/libevent-2.0.21

sudo make; make install

 

memcached 安装

tar zxvf memcached-1.4.15.tar.gz

sudo mkdir -p /opt/memcached-1.4.15

./configure --prefix=/opt/

memcached-1.4.15        或者

./configure --prefix=/opt/memcached-1.4.17/ --with-libevent=/opt/libevent-2.0.21/

sudo make; sudo make install

 

常用的memcached客户端

客户端:

Memcached-Java-Client

亚马逊:

Amazon ElastiCache

memcached全面剖析(推荐)

MongoDB学习笔记(推荐)

 

 

参考推荐

CentOS 安装 memcached

Linux php7.0 安装redis和PHP扩展

Linux php7安装mongoDB和memcached扩展

Redis,MemCached,MongoDB概述

WordPress 启用Memcached内存缓存