Memcached是一套高性能的、分布式内存对象缓存系统。它由C写成,以Key/Value的方式将数据储存在内存中。
一、Memcached特性
Memcached作为高速运行的分布式缓存服务器,具有以下特点:
1、协议简单
Memcached的服务器客户端通信使用简单的文本协议,而不是笨重复杂的XML等格式。因此,通过telnet 也能在memcached上保存数据、取得数据;
2、基于libevent的事件处理
Libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能 封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能;
3、内置内存存储方式
Memcached中保存的数据都存储在Memcached内置的内存存储空间中。 由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。 另外,内容容量达到指定值(启动时可以通过-m参数配置)之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存,不用担心,这个功能是可以配置的:Memcached启动时通过"-M"参数可以禁止LRU。不过,Memcached本身是为缓存而设计的,建议开启LRU.另外,Memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题;
4、Memcached不互相通信的分布式
Memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能,各个Memcached不会互相通信以共享信息。Memcached的分布式是完全由客户端程序库实现的,这种分布式是Memcached的最大特点。通过这种方式,Memcached Server之间的数据不需要同步,也就不需要互相通信了。