浅谈目前主流NoSql数据库,编程学习资料点击免费领取

前言

无意翻资料发现目前好多noSql数据库,但是工作中貌似并没有接触到,很好奇他们的区别,所以就有了这篇文章。(整合了网上许多大佬的文章,如有侵权,麻烦私信告知。)采用浅谈也是为了方便大家无压力阅读,快速了解知识。

如果有文章问题的地方麻烦评论做补充。感谢。

目前我了解的主流Nosql如下:

  1. redis
  2. mongoDB
  3. memcache
  4. LevelDB
  5. Cassandra
  6. HBase

下面我们将通过比较简单图表方式,尽量全面了解这些数据库特点和优缺点以及我所了解的应用场景

下面将通过简介,特性,应用场景,和综合的读写性能复杂检索方面来阐述

简介

redis mongoDB memcache LevelDB Cassandra HBase
Redis是一个开源的(BSD许可的)内存数据结构存储,用作数据库、缓存和消息代理。Redis提供数据结构,如字符串,哈希,列表,集,排序集,范围查询,位图,超日志,地理空间索引和流。Redis有内置的复制,Lua脚本,LRU驱逐,事务,和不同级别的磁盘上的持久性,并通过Redis Sentinel和Redis Cluster自动分区提供高可用性。 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组 MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题。 leveldb 是一个持久化的 key/value 存储,key 和 value 都是任意的字节数组(byte arrays),并且在存储时,key 值根据用户指定的 comparator 函数进行排序 。LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM(Log Structured Merge) 策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销,关于LSM,本文在后面也会简单提及。 Cassandra是一套开源分布式NoSQL数据库系统。是一个混合型的非关系的数据库。是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。 HBase是一个分布式的、面向列的开源数据库,HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群

特性

特点

redis mongoDB memcache LevelDB Cassandra HBase
所用语言C/C++,运行异常快,有硬盘存储支持的内存数据库,支持事务,虽然采用简单数据或以键值索引的哈希表,但也支持复杂的作比如:ANGEBYSCORE 所用语言C++,保留了SQL一些友好的特性(查询,索引),在数据存储时采用内存到文件映射,对性能的关注超过对功能的要求,采用 GridFS存储大数据或元数据(不是真正的文件系统) 高性能key-value分布缓存,多线程,主线程/工作线程,单节点百万级QPS,分布式解决共享内存只能单机应用的局限,同时有效阻止了磁盘开销和阻塞的发生 开发语言是 C++,key和value都是任意的字节数组,支持内存和持久化存储,锁表范围过,同一时间只支持单进程(支持多线程)访问db 不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,扩展比较简单,数据结构比较丰富,分发简单可以快速写入 高可靠性、高性能、面向列、可伸缩的分布式存储系统,目的想用相对普通的配置就能处理大数据量

数据结构

因为数据结构真的很复杂,我这里只能简单总结一下,学识有限,可能总结的不是很到位,想真的了解 建议百度搜索对应的数据结构。

redis mongoDB memcache LevelDB Cassandra HBase
kev-value,新版本支持String、Hash、List、SortedSet(zSet)、Set五种数据类型 mongoDB存储数据类型为BSON(Binary JSON ),它将数据存储成一个文档,数据结构由键值(key=>value)对组成,支持很多数据类型 (_stritem)结构体,memcached中存储数据的最小单位,是key-value的抽象,还记录了最近访问时间、消亡时间等重要信息。 跳表和LSM-Tree,跳表是一个基于有序链表的数据结构,LSM-Tree(Log Structured-Merge Tree)是一个插入性能极佳的结构,传统的关系型数据库的数据库存储引擎(如mysql的Innodb)都是采用B+树的形式 在 Cassandra 中,表是“嵌套的键值对”的列表。 (ROW x COLUMN 键 x COLUMN 值)这里真的没办法很简单的讲 具体可以 百度 cassandra数据结构 RowKey,用来检索记录的主键,Column Family,列族:HBASE 表中的每个列,都归属于某个列族,相比普通table,rowkey概念比较重要

适用场景

这个肯定是大家最关注的地方之一

redis mongoDB memcache LevelDB Cassandra HBase
业务对数据的读写要求频繁,数据规模不大,也不需要长期存储数据,可以选择redis,比如:会话缓存,全页缓存,不同订单临时缓存,redis锁,在业务中广泛使用 业务的数据规模较大,对数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询的业务场景可以使用mongdb,比如:游戏场景,物流,社交,物联网,移动应用 内存对象缓存系统适用访问频率极高的业务,比如:电子商务,游戏,广告,大型促销业务,带计数器的库存系统,数据分析业务,同时因为memcache本身就基于分布式系统,所以很适合大型分布式系统 LevelDB很适合应用在查询较少,而写很多的场景 也是适合是写多读少场景,能够支持大并发低延时的访问需求,具备高可用和弹性扩容能力,比如:互联网类应用,写密集、统计和分析型工作,数据驱动的业务 HBase的设计之初是为了满足互联网的大数据场景,几乎所有非强事务的结构化、半结构化的存储需求都可以使用HBase来满足,比如:大数据场景,广告场景,车联网,互联网,金融和零售业务

结尾

这篇文章纯心是让大家能见到快速的了解到 以后可能会接触到的nosql数据库,很多地方我也自知不够详细,不够深入。想深入了解的可以自行搜索资料。

①3000多本Python电子书有
②Python开发环境安装教程有
③Python400集自学视频有
④软件开发常用词汇有
⑤Python学习路线图有
⑥项目源码案例分享有

如果你用得到的话可以直接拿走,在我的QQ技术交流群里(技术交流和资源共享,广告勿入)可以自助拿走,群号是895937462。

浅谈目前主流NoSql数据库相关推荐

  1. .net mysql和php mysql数据库连接_浅谈PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  2. 浅谈DM达梦数据库体系结构概念

    浅谈DM达梦数据库体系结构概念 DM逻辑结构 DM和Oracle一样也分数据库和实例,两者的概念也基本一致. 但是不同点在于:达梦是单进程.多线程,而oracle是多进程的. DM这种对称服务器构架在 ...

  3. 浅谈当今主流笔记本的cpu

    浅谈当今主流笔记本的cpu    谈起cpu,当然要提一提Intel和AMD了...他们可是这一行的老大,只是最近好像一直在打什么反垄断官司(题外话). 入正题:由于笔记本的移动低功耗等特殊性,所以笔 ...

  4. 3大主流NoSQL数据库性能对比测试报告

    近日,知名独立基准测评机构Bankmark,针对目前市面上主流的NoSQL数据库SequoiaDB.MongoDB以及Cassandra三款NoSQL数据库产品做了性能对比测试并发布测试报告.在所有的 ...

  5. 转:几款主流 NoSql 数据库的对比

    转自:http://www.cnblogs.com/vajoy/p/5471308.html 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoS ...

  6. HBase、Redis、MongoDB、Couchbase、LevelDB 五款主流NoSQL数据库大比拼

    在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资 ...

  7. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  8. 主流nosql数据库对比

    目前开源的NOSQL数据库有,Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Ri ...

  9. 几款主流 NoSql 数据库的对比

    为什么80%的码农都做不了架构师?>>>    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一 ...

最新文章

  1. CSipSimple通话记录分组
  2. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记32 NSNotification
  3. SpringBoot整合异步任务实现发送邮件
  4. 第22章:MongoDB-聚合操作--聚合管道--$out
  5. php gzip乱码,php file_get_contents抓取Gzip网页乱码的三种解决方法
  6. java的mwcellarray_Java 数组
  7. activity和fragment生命周期
  8. php文件改后缀,php如何修改文件后缀名
  9. 聊聊拒绝忽悠的批判性思维
  10. 图像处理的Alpha通道
  11. 一维优化 方法c语言,第三章一维优化方法
  12. 白鹭发布html5,白鹭Egret Engine 1.5发布 HTML5游戏性能大幅提升
  13. android 日历考勤管理,android studio中使用recyclerview制作个显示考勤打卡的日历来...
  14. 不经意传输协议快速入门
  15. .NET使用MailKit进行邮件处理
  16. 黎曼积分并非战无不胜
  17. (C++)编写一个判别素数的函数,在主函数输入一个整数,输出是否为素数的信息
  18. vector sort排序 —— cmp 写法
  19. min-height和min-width的使用场景
  20. Genymotion启动不了?——绝对零度试验机

热门文章

  1. 图算法—Problem J
  2. 苹果硅Mac Pro预测
  3. 荣耀畅玩7C设置语言步骤,荣耀畅玩7c设置杂志锁屏的详细操作
  4. 海岛奇兵游戏设计分析
  5. 如何内网安装npm依赖包
  6. SonicWall端口映射
  7. Android 进程保活资料汇总与华为白名单那些事
  8. 考试用计算机反思800字,考后反思作文800字
  9. 四、redis原理之set底层数据结构
  10. 微信小程序圆盘抽奖(扇形画圆)