第2课:NOSQL数据库介绍与比较

Redis 2.4版

开发语言: C/C++

主要特性: 快到掉渣

许可证: BSD

数据传输格式: 类似 Telnet 式的交换

    Redis 是一个内存数据库(in-memory database,简称 IMDB,将数据放在内存进行读写,这才是“快到掉渣”的真正原因 —— 译者注),磁盘只是提供数据持久化(即将内存的数据写到磁盘)的功能(这类数据库被称为“disk backed”数据库)
    当前不支持将磁盘作为 swap 分区,虚拟内存(VM)和 Diskstore 方式都没加到此版本(Redis 的数据持久化共有4种方式:定时快照、基于语句追加、虚拟内存、diskstore。其中 VM 方式由于性能不好以及不稳定的问题,已经被作者放弃,而 diskstore 方式还在实验阶段 —— 译者注)
    主从备份
    存储结构为简单的 key/value 或 hash 表
    但是操作比较复杂,比如:ZREVRANGEBYSCORE
    支持 INCR(INCR key 就是将key中存储的数值加一 —— 译者注)命令(对限速和统计有帮助)
    支持sets数据类型(以及 union/diff/inter)
    支持 lists (以及 queue/blocking pop)
    支持 hash sets (多级对象)
    支持 sorted sets(高效率的表,在范围查找方面有优势)
    支持事务处理!
    缓存中的数据可被标记为过期
    Pub/Sub 实现了消息订阅和推送!

应用场景:

    适合布署快速多变的小规模数据(可以完全运行在存在中)

MongoDB 2.2版

开发语言: C++

主要特性: 保留 SQL 中一些用户友好的特性(查询、索引等)

许可证: AGPL (驱动: 采用Apache许可协议)

数据传输格式: 自定义,二进制( BSON 文档格式)

    主/从备份(支持自动故障切换功能)
    自带数据分片功能
    通过 javascript 表达式提供数据查询
    服务器端完全支持 javascript 脚本
    比 CouchDB 更好的升级功能
    数据存储使用内存映射文件技术
    功能丰富,性能不俗
    最好开启日志功能(使用 --journal 参数)
    在 32 位系统中,内存限制在 2.5GB
    空数据库占用 192MB 空间
    使用 GridFS(不是真正的文件系统)来保存大数据和元数据
    支持对地理数据建立索引
    可用于数据中心

应用场景:

    动态查询
    喜欢定义索引,而不是使用 map/reduce 功能
    高性能的大数据访问
    想使用 CouchDB 但数据变化频度太大

Couchbase (ex-Membase) 2.0 版

开发语言: Erlang 和 C

主要特性: 兼容 Memcache,但数据是持久化的,并且支持集群

许可证: Apache

数据传输格式: 缓存和扩展(memcached + extensions)

    通过 key 访问数据非常快(20万以上IOPS)
    数据保存在磁盘(不像 Memcache 保存在内存中 —— 译者注)
    在主主互备中,所有节点数据是一致的
    提供类似 Memcache 将数据保存在内存的功能
    支持重复数据删除功能
    友好的集群管理 Web 界面
    支持池和多丛结构的代理(利用 Moxi 项目)
    支持 Map/reduce 模式
    支持跨数据中心备份

应用场景:

    适用于低延迟数据访问系统,高并发和高可用系统。


试着做做下面的题目吧

    1:说法错误的是
    2:mongoDB优点
    3:CouchDB与CouchBase的比较
打赏  如对你有帮助,请我喝杯咖啡吧!