1,memcached是为缓存系统设计,
2,是一种内存缓存,内存中缓存的数据通过api的方式存取,key_values形式的hash值
3,Memcached完全基于分布式集群,而Redis是Master-Slave,如果想把Reids,做成集群模式,无外乎多做几套Master-Slave,
每套Master-Slave完成各自的容灾处理,通过Client工具,完成一致性哈希。
(master-slave主从同步模式)
PS:Memcached是在Server端完成Sharding,Redis只能依靠各个Client做Sharding。可能会在Redis 3.0系列支持Server端Sharding。
4,memcached基于Libevent作为底层网络库(libevent本身就是一个Reactor)
5,memcached使用的是基于文本行的协议,能直接通过telnet在memcached服务器上存取数据
6,memcached服务器之间互不通信,都是独立存取数据,其分布式是通过客户端算法实现:根据key决定保存数据的某个服务器。
7,memcached分布式算法有两种,余数和散列算法,余数在服务器数量变化时所有缓存将失效,一般不用。
8,基于memcached其他产品
memcachedb:新浪基于memcached开发的项目--增加持久化需求
repcached:支持多个memcached之间相互复制
memcached_functions_mysql:相当于mysql的udfs(需单独安装配置),在mysql中通过触发器更新memcached,可以把数据写入到mysql。
memcacheq:实现了消息队列的(类似的消息队列产品:activemq)
ps:memcache.php,nagios,cacti可对memcached进行监控