当前位置:首页 > 开发 > 互联网 > 正文

NoSql 数据库的特性比较

发表于: 2015-07-10   作者:geeksun   来源:转载   浏览:
摘要: Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。   1. 数据模型 作为Key-value型数据库,Redis也提供了键(Key)和值(Value)的映射关系。除了常规的数值或字符串,Redis的键值还可以是以下形式之一: Lists (列表) Sets

Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。

 

1. 数据模型

作为Key-value型数据库,Redis也提供了键(Key)和值(Value)的映射关系。除了常规的数值或字符串,Redis的键值还可以是以下形式之一:

Lists (列表)

Sets (集合)

Sorted sets (有序集合)

Hashes (哈希表)

键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作。

 

2. 持久化

Redis通常将数据存储于内存中,或被配置为使用虚拟内存。

通过两种方式可以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

 

3. 性能同步

Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能,读写操作之间有显著的性能差异。

 

4. 适用场景

适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。

例如:股票价格、数据分析、实时数据搜集、实时通信。

 

-------------------------------------------------------

 

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

 

1. 事件处理

memcached使用libevent库,能在Linux、BSD、Solaris等操作系统上发挥其高性能。libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。

 

2. 数据存储

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

 

3. 适用场景

  KV数据库

  数据库辅助缓存

NoSql 数据库的特性比较

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
四类 NoSQL数据库存储类型: 1. Key-values 存储.
与关系型数据库RDBMS的大厂商垄断不同,NoSQL在发展之初就可谓是百家争鸣、百花齐放,无论目前如日
【文章摘要】 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,同时也是知名的NoSQL
http://www.distream.org/?p=10 NoSQL解决方案比较 NoSQL Solution: Evaluation and Comparison: Mo
公司最近正在做NoSQL选型,通过一周的时间对几种常用的NoSQL做了以下粗略的分析和比较 名词解释: 分
本文英文原文发表于知名技术博客《 Highly Scalable Blog》,对NoSQL数据库中的 分布式算法和思想进
系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多
Oracle发布NoSQL数据库 作者:nosqlfan on 星期三, 十月 5, 2011 · 3条评论 【阅读:2,089 次】 <
NoSQL 数据库 最常见的解释是非关系型数据库,或者“Not Only SQL”。 它的被设计的初衷是为了支持
摘要:对比传统关系型数据库,NoSQL有着更为复杂的分类——键值、面向文档、列存储、图数据库。这里
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号