05-非关系型数据库产品介绍

Memcached(key-value)

  Memcached是一个开原的、高性能的、具有分布式内存对象的缓存系统,通过它可以减轻数据库负数,加速动态的Web应用,最初版本由LiveJournal的Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来构建自己的大负载网站或自己的高访问网站的响应速度。注意:Memcache是这个项目的名称,而Memcached是服务器端的主程序文件名。
  缓存一般用来保存一些经常被存取的对象或数据(例如,浏览器会把经常访问的网页缓存起来一样),通过缓存来存取对象或数据要比在磁盘上存取快很多,前者是内存,后者是磁盘,Memcached是一种纯内存缓存系统,把经常存取的对象或数据缓存在memcached的内存中,这些被缓存的数据被程序通过API的方式被存取,memcached里面的数据就像一张巨大的HASH表,数据以key-value对的方式存在,Memcached通过缓存经常被存取的对象或数据,从而减轻频繁读取数据库的压力,提高网站的响应速度,构建出速度更快的可扩展的Web应用。
  由于memcached为纯内存缓存软件,一旦重启所有数据都会丢失,因此,新浪网基于Memcached开发了一个开源项目Memcachedb,通过为Memcached增加Berkeley DB的持久化存储机制和异步主辅复制机制,使Memcached具备了事务恢复能力、持久化数据存储能力和分布式复制能力,Memcachedb非常适合需要超高性能读写速度、持久化保存的应用场景,但是最近几年逐渐被其他的持久化产品替代例如redis。

redis(key-value)

  和Memcached类似,redis也是一个key-value型存储系统。但redis支持的存储value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、add/remove及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,redis的数据都是缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
  Redis是一个高性能的key-value数据库,redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
redis特点:

  • 支持内存缓存,这个功能相当于memcached。
  • 支持持久化,这个功能相当于memcachedb,ttserver。
  • 数据类型更丰富,比其他key-value库功能更强。
  • 支持集群,分布式。
  • 支持队列等特殊功能。

应用:缓存从存取memcached更改存取redis。

MongoDB(Document-oriented)

  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它 支持的数据结构非常松散,类似json的bjson格式,因此可以存储比较复杂的数据类型,Mongodb最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,它的特点是高性能、易部署、易使用,存储数据非常方便。

Cassandra(Colum-oriented)

猜你喜欢

转载自blog.csdn.net/hualala_32/article/details/76190325