尚硅谷redis学习1-NOSQL简介2

  NoSql数据模型简介

  聚合模型:KV键值,BSON

  列族:

  图形,这里的图形不是指真正的图形,而是关系图

  NoSql数据库的四大分类

  KV键值:BerkeleyDB,Redis,tair,memcache

  文档型数据库:couchDB,mongoDB

  列存储数据库:Cassandra,HBase,分布式文件系统

  图关系数据库:Neo4J,InfoGrid

  对比:

  分布式数据库的CAP+BASE

  传统的ACID:A(atom icity):原子性 C(Consistency):一致性 I(Isolation):独立性 D(Durability):持久性

  CAP:C(Consistency):强一致性;A(Availability):可用性;P(Patition Tolerance):分区容错性

  CAP3进2:

  CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。
  而由于当前的网络硬件肯定会出现延迟丢包等问题,所以
  分区容忍性是我们必须需要实现的。
  所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
=======================================================================================================================
  C:强一致性 A:高可用性 P:分布式容忍性
   CA 传统Oracle数据库
   AP 大多数网站架构的选择
   CP Redis、Mongodb
   注意:分布式架构的时候必须做出取舍。
  一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。
  因此牺牲C换取P,这是目前分布式数据库产品的方向
=======================================================================================================================
  一致性与可用性的决择
  对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地
  数据库事务一致性需求
    很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低, 有些场合对写一致性要求并不高。允许实现最终一致性。
  数据库的写实时性和读实时性需求
    对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说发一条消息之   后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。
  对复杂的SQL查询,特别是多表关联查询的需求
    任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的报表查询,特别是SNS类型的网站,从需求以及产品设计角 度,就避免  了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。

  经典CAP图
   CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
  最多只能同时较好的满足两个。
  因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
  CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
  AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

  BASE

  BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
  BASE其实是下面三个术语的缩写:
      基本可用(Basically Available)
      软状态(Soft state)
      最终一致(Eventually consistent)
  它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法

  分布式加集群

  分布式系统
  分布式系统(distributed system)
   由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在在不同的平台上如:Pc、工作站、局域网和广域网上等。
  简单来讲:
  1分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。
  2集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。

原文地址:https://www.cnblogs.com/liunianfeiyu/p/10182909.html

时间: 2024-10-26 01:24:32

尚硅谷redis学习1-NOSQL简介2的相关文章

尚硅谷redis学习1-NOSQL简介

本系列是自己学习尚硅谷redis视频的记录,防止遗忘,供以后用到时快速回忆起来,照抄视频和资料而已,没什么技术含量,仅给自己入门了解,我是对着视频看一遍再写的,视频地址如下:尚硅谷Redis视频 背景:传统型数据库面临的问题 传统型数据库架构的演变 从最开始的单机一路进化到缓存加集群加分库分表主从读书分离,但即使这样还是有问题得不到解决 今天最终已经成为了这个样子 为什么用NoSql NoSql更适合大数据的处理 特点 传统数据库的NoSql的比较 RDBMS - 高度组织化结构化数据 - 结构

尚硅谷redis学习4-数据类型

redis的数据类型包括String,Hash(类似于JAVA里的map),List,Set,Zset(sorted Set) String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M Hash(哈希)

尚硅谷redis学习7-持久化AOF

AOF比RDB优点在于数据的实时性高,经过设置后最多只会损失一秒钟的数据,而RDB最多可能损失上次备份到此次DOWM机间的数据 原理 配置文件 设置同步频率 重启redis,测试,可以看到数据在关机重启后恢复了 处理aof文件损坏 给aof文件加异常字符 关闭redis后发现已无法启动 修复aof文件,可以看到修改aof文件后redis启动成功 小总结 重写rewrite 配置文件 优劣势 小总结 和rdb如何使用 性能建议 原文地址:https://www.cnblogs.com/liunia

尚硅谷redis学习8-事务

是什么? 能干嘛? 常用命令 案例说明 1.正常执行 2.放弃事务 3.全部放弃(全体连坐) 4.只抛弃错误(冤头债主) 5.watch监控 悲观锁 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁 乐观锁 乐观锁(Optimistic Lock), 顾名思义,就

尚硅谷redis学习9-发布订阅

是什么? 图示说明 命令 例子 原文地址:https://www.cnblogs.com/liunianfeiyu/p/10317816.html

尚硅谷redis学习10-复制

是什么? 能干嘛? 怎么玩? 1) 初始情况 设置slave 日志查看 主机查看 备机日志 复制状态 觉见问题 1 切入点问题?slave1.slave2是从头开始复制还是从切入点开始复制?比如从k4进来,那之前的123是否也可以复制 从头复制 2 从机是否可以写?set可否?  从机是只读的 3 主机shutdown后情况如何?从机是上位还是原地待命  从机原地待命 4 主机又回来了后,主机新增记录,从机还能否顺利复制?  可以 5 其中一台从机down后情况如何?依照原有它能跟上大部队吗?

尚硅谷springboot学习20-web开发简介

使用SpringBoot 1).创建SpringBoot应用,添加我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 3).自己编写业务代码: 深入理解自动配置原理 这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxx xxxxAutoConfiguration:帮我们给容器中自动配置组件: xxxxProperties:配置类来封装配置文件的内容: 原文地址:https://www.cnb

Redis学习一:Nosql入门和概述

现在Redis越来越火,为了适应技术的发展,开始学习一下Redis,在学习Redis之前先学习一下Nosql. 第一部分:入门概述 1.1 互联网时代背景下大机遇,为什么用nosql 1.1.1 单机Mysql的美好年代(好几年前) 当时的业务很相对简单,就是JSP--->Action---->Service---->DAO----->数据库,数据库也就是一个实例而已,无论是Mysql还是Oracle.把这五层缩减为三层的话便是:应用层------>DAO层------>

尚硅谷springboot学习14-自动配置原理

配置文件能配置哪些属性 配置文件能配置的属性参照 自动配置的原理 1).SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2).@EnableAutoConfiguration 作用: 利用EnableAutoConfigurationImportSelector给容器中导入一些组件? 可以查看selectImports()方法的内容: List<String> configurations = getCandidateConfi