【数据库】NoSQL数据库简介
基于自己的理解,对几个常见的NoSQL数据库进行一下简单介绍,如有描述错误的,还请指正一下哈
一、数据库分类
数据库分两大类:SQL数据库和NoSQL数据库
SQL数据库
常用的有
Mysql、Oracle、MSSQL、DB2等,这些大家应该都比较熟悉,都是SQL查询,语法大同小异。
NoSQL数据库
NoSQL数据库与传统的SQL数据库不同,SQL数据库是按行存储数据的,而NoSQL数据库按数据存储结构分以下四类:
类型 | 其中的扛把子 |
---|---|
键值数据库 | Redis |
列族数据库 | Hbase |
图数据库 | neo4j |
文档数据库 | MongoDB |
二、几类常用NoSQL数据库简介
1、Redis
Redis算是这几类之中最常见的了,因其高速的特点,常用作缓存。
为什么Redis速度贼快?
- 数据在内存,读写都在内存,速度远超从磁盘读写(会异步持久化到磁盘,不会关个机就数据全丢)
- 单线程读写,不会有多线程频繁切换上下文或者抢资源造成的额外开销(只是读写单线程,持久化之类的操作还是其他线程在做的)
- 非阻塞的多路复用,提高线程工作效率(这个不太好解释,类似你到某个地方去修手机(维修中心只有一个人),有个人A排在你后面,维修中心的工作人员接待你进行登记之后,然后需要你再提供发票;你回家去拿发票,维修中心的工作人员不会一直等着你,而是会暂时对A提供服务,等你回来了就暂停对B的服务,继续对你的服务,等你这边结束了再继续A的)
应用场景
- 高并发读写场景下,对某些不经常变更的信息做缓存,避免直接访问数据库(需要注意缓存穿透、雪崩)
- 分布式锁
- 计数(例如商品秒杀的计数,并发或多线程情况下需要注意是否算错)
- 保存session 等
2、Hbase
Hbase主要是应用于大数据方向,搭建在大数据平台上,结合分布式文件系统HDFS使用;
Hbase的数据结构
- 数据是如何存储到文件的?
其特点是以列族为文件来存储数据,有多少个列族就有多少个文件,以Hfile压缩存储到HDFS
在存储数据前会根据rowKey进行数据排序,而查询数据时,是根据rowKey+列族|字段去查询数据的,因此在Hbase中,对于rowKey如何定义很重要,好的rowKey设计,能够大大提高数据的查询效率 - 每个行列的cell带了哪些信息?
rowKey(用于定位数据)
字段值
时间戳(cell数据发生变更,不会覆盖旧数据,而是会生成一个带新的时间戳的记录,可设置保留多少条旧记录或者多少天的)
Hbase的应用
- 主要是在数仓或分析平台,进行海量数据的分析处理
3、neo4j
neo4j是一个图数据,是用于存储各种关系,主要用于社交推荐、关系透视啥的
例如:你跟你前女友存在关系,你现女友跟你存在关系,某社交软件把你前女友推荐给现女友,就是通过图数据找到他俩之间存在关系的
neo4j的特点
- 单一纯粹,就是存储和找关系的,在查询关系上有着SQL数据库无法比拟的速度
- UI界面好看,真的好看
存储结构
- neo4j是将定长的信息和非定长的信息分开存储的
- 链式存储,节点是单向链表,关系是双向链表
4、MongoDB
这个没用过,只知道是BSON(二进制json)文档存储,主要用于爬虫相关的数据存储
【数据库】NoSQL数据库简介相关推荐
- 【Redis6快速深入学习01】NoSQL数据库简介
文章目录 1 NoSQL数据库简介 1.1 技术发展 1.2 NoSQL数据库 1.3 行式存储数据库(大数据时代) 1.4 图关系型数据库 1 NoSQL数据库简介 1.1 技术发展 技术的分类 解 ...
- 面向初学者的图形数据库:为什么我们需要NoSQL数据库,ACID与BASE的解释说明
Table of Contents 为什么我们需要NoSQL数据库 NoSQL数据库的Many&Motley世界 数据量 数据速度 数据种类 数据价 结论 ACID与BASE的解释说明 ACI ...
- NoSQL数据库的基础知识
关系型数据库和NoSQL数据库 什么是NoSQL 大家有没有听说过"NoSQL"呢?近年,这个词极受关注.看到"NoSQL"这个词,大家可能会误以为是" ...
- NoSQL 数据库有哪些典型应用?
之前介绍了数据库读写分离和分库分表相关知识,都是针对关系型数据库的,即通常说的 RDBMS.除了关系型数据库,NoSQL 在项目开发中也有着越来越重要的作用,与此同时,NoSQL 相关的内容也是面试的 ...
- NoSQL数据库入门概述
关系型数据库与NoSql数据库 什么是NoSQL Not Only SQL,其含义是:适合关系型数据库的时候就是用关系型数据库,不适用的时候也没必要非得使用关系型数据库不可,可以考虑使用更加合适的数据 ...
- NoSQL数据库是什么?
数字化转型是使用可扩展.可定制的互联网和移动应用程序为客户提供服务的趋势的名称.这些应用程序通常很难使用 SQL 技术构建和快速发展.出于这个原因,从 2000 年代中期到 2020 年,我们看到 N ...
- NoSQL数据库Redis使用命令简介
NoSQL 数据库Redis使用命令简介 NOSQL数据库可以按照它们的数据模型分成4类: 1.键-值对存储库(Key-Value) redis-- 2.BigTable实现(BigTable-imp ...
- [Redis6]NoSQL数据库简介_特点
NoSQL数据库简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不依赖业务逻辑方式存储,而以简单的key ...
- NoSQL数据库--简介
一.What's NoSQL? NoSQL,全称是"Not Only Sql",指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的 ...
- NoSQL 数据库 简介
一. NoSQL概念 开源的数据库用的最多的是PostgreSQL和MySQL. 关于这2者的对比,参考我的Blog: MySQL 和 PostgreSQL 对比 http://blog.csdn. ...
最新文章
- 注意 ExecuteNonQuery() 返回值
- SSE图像算法优化系列一:一段BGR2Y的SIMD代码解析。
- BZOJ1801: [Ahoi2009]chess 中国象棋
- 拉格朗日乘数法(一种寻找变量受一个或多个条件所限制的多元函数的极值的方法)
- [Android组件化]分发模块依赖倒置
- 欢迎使用CSDN-markdown编辑器!!!
- xhtml的行内描述性元素
- 第十节:委托和事件(2)(泛型委托、Func和Action、事件及与委托的比较)
- JSON.toJSONString 首字母不小写
- Django项目:CRM(客户关系管理系统)--83--73PerfectCRM实现CRM模板统一
- HDU2032 杨辉三角【入门+趣味程序】
- signal(SIGCLD,SIG_IGN)
- 遇到系统问题,先看OS再看CPU
- 推荐一款超级好用的开源项目画图工具
- 利用EXCEL计算标准差。
- Fdma, TDMA,cdma
- Mothur5进阶_Mothur扩增子基因序列分析_基于OTU或ASV的多样性指数分析
- err = Problems with launching via XPC. XPC error : Connection interrupted (0x00000005)
- feign实战(provider与consumer)
- 汉明码纠错java_汉明码纠错的基本原理及优化解决方案