`
geeksun
  • 浏览: 953000 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

NoSql 数据库的特性比较

 
阅读更多

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数据库原理-第二章-NoSQL数据库的基本原理.pptx

    NoSQL数据库原理第2章 NoSQL数据库的基本原理 NoSQL数据库原理-第二章-NoSQL数据库的基本原理全文共60页,当前为第1页。 2.1.1 关系模型 (1)实体(Entity):是指现实世界中的具体或抽象的事物。例如:一个学生、...

    NoSQL数据库技术实战

    本书既对NoSQL系统的理论进行了深入浅出的分析,又介绍了每一种NoSQL数据库在业界广泛应用的一个具体系统,理论与实战并重。 本书共分5篇,12章。涵盖的内容有:NoSQL与大数据简介、NoSQL的数据一致性、NoSQL的水平...

    NoSQL数据库-MongoDB和Redis

    MongoDB等NoSQL数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库,MongoDB通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为MongoDB是非原子性的,所以如果如果应用需要事务,还是需要...

    NoSQL数据库Ardb.zip

    Ardb是一个新的构建在持久化Key/Value存储实现上的NoSQL DB服务实现,支持list/set/sorted set/bitset/hash/table等复杂的数据结构,以Redis协议对外提供访问接口。 ... 标签:Ardb NoSQL数据库

    NoSQL数据库笔谈

    NoSQL数据库笔谈 Key Column Super column Sorting 存储 API Google之BigT able Yahoo之PNUTS 特点 PNUTS实现 Record-level mastering 记录级别主节点 PNUTS的结构 Tablets寻址与切分 Write调用示意图 PNUTS感悟 ...

    大数据云计算技术系列 NoSQL数据库学习教程(共71页).pdf

    5 NOSQL们背后的共有原则 5 假设失效是必然发生的 5 对数据进行分区 5 保存同一数据的多个副本 5 动态伸缩 5 查询支持 5 使用 Map/Reduce 处理汇聚 5 基于磁盘的和内存中的实现 5 仅仅是炒作? 6 附 6 感谢 6 版本志 ...

    NoSQL数据库MongoDB基础学习

    本文从基本概念,数据逻辑结构、存储结构,功能特性,系统架构,应用场景等方面详细的介绍了MongoDB,并将MongoDB与MySQL操作命令对比,并附加了MongoDB爱好者交流QQ群

    NoSQLFan NoSQL数据库的分布式算法

    系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性。这么讲使得NoSQL听起来像是一个...在这篇文章里,我将针对NoSQL数据库的分布式特点进行一些系统化的描述。

    使用NoSQL数据库提供云级别数据可伸缩性

    在提及数据库扩展性时,人们就会想到相对低成本...NoSQL数据库(包括NoSQL系统HBase、MongoDB和SimpleDB)的特性和功能概述,还将介绍云和 NoSQL数据库的设计基础。就创建、交流、访问内容、共享信息和购买产品而论,快

    vedis-python, Vedis嵌入式 NoSQL 数据库的python 绑定.zip

    vedis-python, Vedis嵌入式 NoSQL 数据库的python 绑定 Vedis嵌入式 NoSQL 数据库的快速 python 绑定。 Vedis是一个有趣的。快速的嵌入式数据库,。查看 vedis python文档 。特性Vedis特性:嵌入式,零conf数据库...

    NOSQL 数据库

    这是讲述 NOSQL 技术的文档 这篇文档整理网上的一些观点 主要讲述NOSQL的思想及框架,适合入门学习

    nosql数据库简介.pptx

    NoSQL(Not Only SQL/non-relational),最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受,泛指非关系型的数据库,它们不保证关系数据的ACID特性,但其提倡运用非关系型的数据存储。

    8-NoSQL数据库.ppt

    关系数据库的关键特性包括完善的事务机制和高效的查询机制。但是,关系数据库引以为傲的两个关键特性,到了Web2.0时代却成了鸡肋,主要表现在以下几个方面: (1)Web2.0网站系统通常不要求严格的数据库事务 (2)...

    NoSQL数据库技术特性解析之文档数据库

    对于企业来说,从关系型数据库到NoSQL数据库转变绝对是个需要深思熟虑的大改变。这涉及的不仅是软件的变化,更多的是对于数据存储上观念性的变化。CouchDB专家兼作者BradleyHolt认为NoSQL并不是反SQL的运动,为对应...

    深入理解NoSQL数据库分布式算法及策略

    在这篇文章里,我将针对NoSQL数据库的分布式特点进行一些系统化的描述。接下来我们将研究一些分布式策略,比如故障检测中的复制,这些策略用黑体字标出,被分为三段:1、数据一致性。NoSQL需要在分布式系统的一致性...

    8种主流NoSQL数据库系统特性对比和最佳应用场景

    主要介绍了8种主流NoSQL数据库系统特性对比和最佳应用场景,对选择一个NoSQL数据库来说是一个不错的参考文章,需要的朋友可以参考下

    性能超越Redis的NoSQL数据库SSDB.zip

    SSDB 是一个 C/C 语言开发的高性能 NoSQL 数据库, 支持 zset(sorted set), map(hash), kv, list 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据. SSDB 在 QIHU 360 被大量使用, 同时也被国内外业界...

    高性能 NoSQL 数据库 ArangoDB.zip

    特性:1. 多数据模型: 可以灵活的使用Key-Value,document,graph或者他们的组合作为你的数据模型.2.方便的查询:支持类似SQL的查询语法AQL.或者通过REST以及其他查询。3.Ruby和JS扩展:没有语言范围限制,你可以从前台...

Global site tag (gtag.js) - Google Analytics