1. Memcached简介
Memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个key-value对的hashmap。其进程是用C写的,但是客户端可以用任务语言来编写。
Memcached主要用途就是分布式缓存,示意图(摘自网上),如下,其中说明就不表了,应该很容易看懂。
2. Memcached主要特点
Memcached作为高速运行的分布式缓存服务器,具有以下特点:
a) 协议简单
Memcached的服务器客户端通信并不使用复杂的XML等格式,而是使用基于简单的文本行的协议,因此通过talent也能在Memcached上保存数据,取得数据
b) 基于libevent的事件处理
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
c) 内置内存存诸方式
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此