NOSQL

key-value 键值对

redis
键值对储存
特点:查询数据快
内存缓存,主要用于处理大量数据得高仿问负载,也用于一些日志系统等等

Column 列式存储

HBase
将同一列得数据放在一起,查询非常快

document 文档存储

MongoDB
经典用于web项目中,与KeyValue类似,比如MongoDB主要应用在爬虫

Graph 图结构存储

neo4j
用于社交网络

在这里插入图片描述

Nosql特点

易扩展
当一台机器不够用了,很容易添加一个新的服务器,只要配置好环境之后,自动使用。
大数据量、高性能

读写速度快,nosql基本都是内存数据库,比硬盘存储要快很多,查询数据快
灵活性
NoSQL无需事先为 要存储的数据 建立字段,随时可以存储自定义的数据格式,在关系型数据库添加字段和删除字段是非常麻烦的。
高可用
一台机器宕机出问题了,不会影响其他的机器
相关理论
关系数据库理论:ACID
分布式系统:CAP
Consistency (一致性):

“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。

Availability (可用性):

可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。

Partition Tolerance (分区容错性):

即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。

分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。
https://blog.youkuaiyun.com/qq_34802511/article/details/81296510

Redis快速入门

简写:REmote DIctionary Server
远程字典服务器
https://redis.io/
redis特色
独特的键值对模型
key-value
很多数据库只能处理一种数据结构
Memcached:键值对数据,键和值只能字符串,没有持久化功能
mangoDB:JSON组成的文档
支持的数据类型:

内存存储,数据极快

丰富的附加功能
持久化功能
发布与订阅功能:微信公众号类型
过期键功能:某条数据存储时间,时间到了过期
事务功能
集群
复制
完善的完成
良好的支持

广泛的使用

nosql,键值对类型,数据有哪些。。。。。,

### NoSQL 数据库概述 NoSQL 是指非关系型的数据库,有时也被称作 Not Only SQL 的缩写。这类数据库管理系统区别于传统的关系型数据库,主要用于处理超大规模数据的存储[^2]。 这些系统能够高效地应对像谷歌或 Facebook 每天为其用户收集的海量数据(万亿比特级别),并且具备灵活的数据模型,在依赖固定模式的情况下支持简便的水平扩展能力。 ### NoSQL 数据库的主要优势 使用 NoSQL 数据库的原因在于其设计初衷是为了克服关系型数据库在面对大数据量和高并发访问场景下的局限性: - **灵活性**: 需要预先定义严格的数据结构; - **可扩展性**: 更容易实现分布式部署并随着需求增长而线性扩展; - **性能优化**: 针对特定查询进行了高度优化,从而提高了读取/写入速度。 ### NoSQL 数据库分类 根据同的架构特点和技术原理,可以将 NoSQL 数据库分为几种主要类别[^1]: #### 列族存储 (Column-family Stores) 这种类型的数据库按照列家族来组织数据,适合用来保存稀疏矩阵形式的信息集合。典型代表有 Apache Cassandra 和 HBase。 ```sql -- 创建一个简的Cassandra表格作为例子 CREATE TABLE users ( user_id UUID PRIMARY KEY, first_name text, last_name text, email text ); ``` #### 文档数据库 (Document Databases) 文档数据库以 JSON 或 XML 形式的文档为位进行存储,允许更复杂的嵌套结构表示对象之间的关联关系。MongoDB 就是一个流行的实例。 ```json { "_id": ObjectId("..."), "name": "John Doe", "address": { "street": "Main St.", "city": "Anytown" } } ``` #### 键值存储 (Key-value Stores) 键值对是最基本的一种无模式化数据表达方法,Redis 及 Amazon DynamoDB 属于此类。它们提供了极高的存取效率,特别适用于缓存机制或者会话状态管理等领域。 ```bash SET key value GET key ``` #### 图形数据库 (Graph Databases) 图形数据库专注于描述实体间复杂多变的关系网络,Neo4j 即为此种类型的一个范例。它非常适合社交网络分析、推荐引擎开发等方面的应用。 ```cypher // 查询与节点相连的所有其他节点 MATCH (n)-[:FRIEND]->(m) RETURN n, m; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值