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.csdn.net/qq_34802511/article/details/81296510
Redis快速入门
简写:REmote DIctionary Server
远程字典服务器
https://redis.io/
redis特色
独特的键值对模型
key-value
很多数据库只能处理一种数据结构
Memcached:键值对数据,键和值只能字符串,没有持久化功能
mangoDB:JSON组成的文档
支持的数据类型:
内存存储,数据极快
丰富的附加功能
持久化功能
发布与订阅功能:微信公众号类型
过期键功能:某条数据存储时间,时间到了过期
事务功能
集群
复制
完善的完成
良好的支持
广泛的使用
nosql,键值对类型,数据有哪些。。。。。,