Memcache VS Memcached VS MemcacheDB
1、 简单讲Memcache和Memcached都讲的是同一个开源项目http://memcached.org/,只不过Memcached指的是后台的cache server,而Memcache指的访问cache server的客户端。Memcached提供了两种访问协议,ASCII和Binary。
2、 MemcacheDB=Memcached+BerkeleyDB组成的轻量的持久数据库,与前两者是不同的两个东西。
3、作为数据库就要讲究consistency,但是Memcached是一种分布式的缓存机制,因此并不严格要求consistency,而且实际上每个memcached server之间本身不通讯也不共享,所谓的分布式是由memcached的客户端程序来决定的。一般分布式算法采用基于server节点数的取余法,这种方法以node数为基础,因此增减服务器就会造成很大hash失效问题。所以改进的算法一般采用consistent hash算法,这种算法取消了以服务器节点数作为基数的理念,而是直接对服务器的节点进行hash,然后散布在0~2^32的圆周上,同样对于数据的key也采用同样的hash进行散布,对于key hash的结果取其所在圆周顺时针方向最近的一个服务器节点进行set,这样当增减服务器时,只会影响散布在该增减的服务器到逆时针方向的上一个服务器节点之间的数据。一下子减少了损失。
4、持久性。Memcached没有持久性,down机数据即丢失,其中的数据采用LRU算法。而Memcachedb是一种持久的数据库存储。