Memcache, BDB ,mongoDB

一、概念

Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。

二、适用场合

1.分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。

2.数据库前段缓存。数据库常常是网站系统的瓶颈。数据库的大并发量访问,常常造成网站内存溢出。当然我们也可以使用Hibernate的缓存机制。但memcached是基于分布式的,并可独立于网站应用本身,所以更适合大型网站进行应用的拆分。

3.服务器间数据共享。举例来讲,我们将网站的登录系统、查询系统拆分为两个应用,放在不同的服务器上,并进行集群,那这个时候用户登录后,登录信息如何从登录系统服务器同步到查询系统服务器呢?这时候,我们便可以使用memcached,登录系统将登录信息缓存起来,查询系统便可以获得登录信息,就像获取本地信息一样。

三、不适用场合

那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源


关于Memcache可参考这篇http://www.infoq.com/cn/articles/memcached-java

.简单的说,BDB不使用网络,本地内存读取的话,mongodb,bdb,memcaceh性能应该都差不多,bdb还不占用网络资源,

分布式环境的话,因为都是master-slave结构,都有中心问题,一般成为瓶颈的是网卡而非系统,之前有人测试的结果是mongodb的性能和其他综合方面最佳,memcache也不是最佳选择。Redis虽然省资源,但是只能单核,现在谁还用单核的机器?


总结: 单机版环境BDB性能不错,且资源少,分布式用MongdoDB.

你可能感兴趣的:(memcache)