Nosql介绍

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: Nosql介绍

Nosql

什么是Nosql?

不保持ACID,而Nosql数据库遵循BASE原则**(基本可用(Basically Availble)**NoSQL允许分布式系统中某些部分出现故障,那么系统的其余部分依然可用。它不会像ACID那样,在系统出现故障时,进行强制拒绝,允许继续部分访问、**软/柔性事务(Soft-state )**NoSQL在数据处理过程中,允许这个过程,存在数据状态暂时不一致的情况。但经过纠错处理,最终会一致的。**最终一致性(Eventual Consistency)**NoSQL的软状态允许数据处理过程的暂时不一致,但是最终处理结果将是一致的,说明NoSQL对数据处理过程可以有短暂的时间间隔,也允许分更细的步骤一个一个地处理,最好数据达到一致即可。这在互联网上进行分布式应用具有其明显的优势。)

Nosql=Not Only Sql(不仅仅是sql,通过键值对存储),就是非关系型数据库,用于超大规模的存储(比如京东的那么多用户)这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

为什么使用Nosql?

随着用户的信息,社交,用户生成的数据和日志爆发式的增长,以前的互联网不发达,流量不大,就一个mysql,mysql数据库就不适合,Nosql数据库库却可以很好的处理这些大 数据

web1.0和web2.0的主要区别

web1.0是基于浏览器的,用户通过浏览器获取内容,即用户只能去浏览已经创作好的内容;

web2.0基于1.0,增加了用户与系统的交互,使用者既是网络内容的获取者,也是网络数据的提供者,例如:论坛、博客、微博等相关社交类型的平台;

POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

poi(point of interest 感兴趣的)用java通过poi这个jar包操作Excel表

Nosql优缺点

优点:方便扩展(数据没有关系,好扩展)、大数据量,高性能(Redis1秒可以写8万次,读取11万,Nosql的缓存是一种细粒度的缓存,性能高**)分布式计算、没有复杂关系,架构灵活**(传统关系型数据库都是结构化的表,nosql可以是列式存储、key-value和文档存储;

缺点:没有标准化(什么样的类型都有)

为什么不使用关系型数据库?

慢慢数据量太大,一台机器放不下

数据的索引,数据超过300万就需要建立索引,不建立索引的话就查询相对慢,内存也放不下访问量大,读写混合,一个服务器承受不了,出现这些情况就需要进阶,然后就进去第二个Memecached(高速缓存插件)+mysql+垂直拆分(也就是读写分离,完了之后才是分库分表),为啥不用orcge因为非常贵。

减轻服务器的数据压力可以用缓存处理(缓存主要用来解决读的问题)

分库分表+水平拆分(mysql集群)

比如有一个人去访问这个网站,然后就去看缓存有没有,会去集群,在比如这几个集群里各放3分之一的数据,通过一些集群机制去找到对应的数据在哪

本质:数据库就是读写

数据库引擎:最早MyISAM:表锁(100万数据,要去查张三的密码,他会把整个这个表锁起来,剩下的进程是不是得这个结果查询出来,效率低,在高并发下就会出现严重的问题),转到Innodb:行锁(明显比表锁效率高,只锁这一行)

慢慢的就使用分库分表解决写的压力。

json也可以当数据库传输

Bson也是数据库交换格式二进制的json,和json差不多

Nosql表现Map<String,Object>存万事万物,

不仅仅是数据,没有固定的查询语言,以键值对(其中的一种),列存储,文档存储,图形数据库(社交关系),最终一致性

–CAP定理和BASE理论 (异地多活):在redis事务中讲

了解3V+3高

大数据时代的3v:主要是描述问题的

海量Velume(特别多)

多样Variety(各种各样)

实时 Velocity(现在还是4g,所以看直播还有延时)

大数据时代的3高:主要是对程序的要求

高并发()

高可扩(随时水平拆分,服务器不够了,可以扩展机器来)

高性能 (保证用户体验和性能!)

真正在公司中实践:关系型数据库+非关系型数据库结合使用才最强 —(阿里巴巴的架构演进)

Nosql的四大分类

kv(键值对):

  • 新浪:Redis
  • 美团:Redis+Tair(集群)
  • 阿里、百度:Redis+memecache(是一个开源、高性能、分布式内存对象缓存系统)

文档型数据库(用的多,bson格式和json一样,bson是二进制)

  • MongoDB(一般必须掌握)在Nosql中
  • MongoDB基于分布式文件存储的数据库,c++编写的、redis也是用c编写的(单进程、单线程) 主要就是用来处理大量的文档,主要解决海量数据的访问效率问题。
  • MongoDB是一个介于关系型数据库和非关系型数据库中间的产品!MongoDB是非关系型数据库,功能最丰富、最像关系型数据库的ConthDB:国外的了解一哈[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XaTLKz3p-1599445583054)(D:\Redis\MongoDB.png)]…mysql是行储存数据库(一行代表一个记录)列存储数据库
  1. HBase(是一个分布式的、面向列的开源数据库、大数据中的)
  2. 分布式文件系统
  • 图形关系数据库(不是放图片的、是放关系的|如社交拓扑图、朋友圈社交网络)
    标准的解决方案Noe4j、infoGrid

四者对比:

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
存储 NoSQL 关系型数据库
NOSQL -- MOGODB
NOSQL -- MOGODB
|
26天前
|
SQL NoSQL 数据库
Flutter Hive NoSql 数据库使用指南
本文将会写一个 Hive CURD 的例子,详细介绍 Hive 这个轻量级的 Flutter 离线数据库的使用方法,包括 Hive 在 Flutter 开发中的重要性、Hive 与 SQLite 的比较等,帮助开发者快速上手 Hive 数据库。
Flutter Hive NoSql 数据库使用指南
|
21天前
|
存储 SQL NoSQL
NoSQL数据库与传统关系型数据库的比较
【7月更文挑战第29天】NoSQL数据库与传统关系型数据库各有其独特的优势和适用场景。关系型数据库在复杂查询、事务处理和一致性方面表现出色,但在扩展性和处理大规模数据集时可能受到限制。而NoSQL数据库则以高扩展性、高性能和高可用性为目标,适用于处理大规模数据集和高并发读写场景。在选择数据库时,开发者应根据具体的应用场景和需求进行权衡和选择。
|
22天前
|
存储 SQL NoSQL
现代数据库技术:从关系型到NoSQL的演进与比较
随着信息技术的飞速发展,数据库技术也在不断演进和创新。本文将探讨现代数据库技术的发展历程,重点比较了传统的关系型数据库和新兴的NoSQL数据库,分析它们在不同场景下的优缺点及应用推荐。
|
30天前
|
SQL NoSQL 关系型数据库
现代数据库技术:从关系型到NoSQL的进化与应用
本文探讨了现代数据库技术的发展历程,从传统的关系型数据库到新兴的NoSQL数据库的演进过程。通过比较不同类型数据库的特点和应用场景,分析它们在各自领域中的优缺点及适用性,旨在帮助读者理解并选择合适的数据库技术来支持他们的应用需求。
|
1月前
|
缓存 NoSQL Java
使用Spring Boot和Couchbase实现NoSQL数据库
使用Spring Boot和Couchbase实现NoSQL数据库
|
1月前
|
监控 NoSQL 数据管理
电脑监控软件中的NoSQL数据库管理
这篇文章介绍了在电脑监控软件中使用NoSQL数据库管理非结构化数据。通过Python示例展示了如何使用MongoDB客户端连接数据库、插入单条或多条数据、查询数据(包括所有、特定用户和时间范围)、更新数据以及删除数据。此外,还提供了一个简单的数据监控和自动提交到网站的脚本,以每分钟检查一次新活动并发送到指定URL。这些示例有助于理解和优化监控软件中的数据处理。
59 3
|
1月前
|
NoSQL Java MongoDB
如何在Java中使用NoSQL数据库
如何在Java中使用NoSQL数据库
|
2月前
|
SQL 存储 NoSQL
SQL与NoSQL数据库的选择:技术与场景驱动下的决策
【6月更文挑战第16天】**SQL vs NoSQL数据库:技术与应用场景比较。SQL数据库以其关系模型、ACID特性、灵活查询及事务处理见长,适合结构化数据和强一致性场景。NoSQL则以数据模型灵活性、高可扩展性、高性能及低成本著称,适合大数据、高并发和快速迭代的需求。选择应基于业务需求、数据特性、系统架构和成本。**
|
2月前
|
NoSQL 关系型数据库 MySQL