Memcached特征

Memcached作为高性能的缓存服务器,具有如下特征:

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

1、协议简单

Memcached的协议实现比较简单,使用的是基于文本行的协议,能直接通过telnet在Memcached服务器上存取数据。
示例如下:

telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
set foo 0 0 3     (保存命令)
bar               (数据)
STORED            (结果)
get foo           (取得命令)
VALUE foo 0 3     (数据)
bar               (数据)

2、基于libevent的事件处理

libevent是一套利用C开发的程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。确保即使服务器端的连接数增加也能发挥很好的性能。Memcached利用这个库进行异步事件处理。

3、内置的内存管理方式

Memcached有一套自己管理内存的方式,这套管理方式非常高效,所有的数据都保存在Memcached内置的内存中,当存入的数据占满空间时,使用LRU算法自动删除不使用的缓存,即重用过期数据的内存空间。Memcached是为缓存系统设计的,没有考虑数据的容灾问题和持久性问题,和机器的内存一样,重启机器数据将会丢失。

4、互不通信的分布式

各个Memcached服务器之间互相不通信,都是独立的存取数据,不共享任何信息。通过对客户端的设计,让Memcached具有分布式,能支持海量缓存和大规模应用。
如下图: