MemCache有哪些特点

底层的协议非常简单

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

  XML是比较老的一款通信格式,因此,通过telnet也能在memcached上保存数据、取得数据。下面是例子。

  $ telnet localhost 11211

  Trying 127.0.0.1

  Connected to localhost.localdomain (127.0.0.1).

  Escape character is '^]'.

  set foo 0 0 3 (保存命令)

  bar (数据)

  STORED (结果)

  get foo (取得命令)

  VALUE foo 0 3 (数据)

  bar (数据)

  事件处理的方式

  libevent是个程序库,它将LinuxepollBSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在LinuxBSDSolaris等操作系统上发挥其高性能。

  O(1)是数据库里的执行速度,有一个比较快的性能。

  存储方式

  为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

  通信分布式

  memcached尽管是分布式缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。如取余,一致性哈希,都可以解决分布式的问题。

  底层客户端并没有给我们做一些底层的算法问题,比如我想做一个memcached的分布式,他不会自动进行分布式。

 

文章来源:麦子学院

原文链接:http://www.maiziedu.com/wiki/memcache/feature/

猜你喜欢

转载自2789593579.iteye.com/blog/2341639