Redis3.0.x NoSql 入门

概述

NoSQL(Not Only SQL ),即不仅仅是 SQL,泛指非关系型的数据库。NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。

NoSQL 和 RDBMS 的区别

  • Redis 是 NoSQL 数据库,而 RDBMS 是 SQL 数据库。
  • Redis 遵循键值结构,而 RDBMS 遵循表结构。
  • Redis 非常快,而 RDBMS 相对较慢。
  • Redis 将所有数据集存储在主存储器中,而 RDBMS 将其数据集存储在辅助存储器中。
  • Redis 通常用于存储小型和常用文件,而 RDBMS 用于存储大文件。

3V3H

大数据 3V

  • 海量 Volume
  • 多样 Variety
  • 实时 Velocity

互联网 3H

  • 高并发
  • 高可用
  • 高性能

NoSql 四大分类

键值型数据库

  • 应用举例:Redis
  • 应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于日志系统等
  • 数据模型:key-value,通常使用 HashTable 来实现
  • 优点:查找速度快
  • 缺点:数据无结构化,通常只被当作字符串或者二进制数据

文档型数据库

  • 应用举例:MongoDB
  • 应用场景:Web 应用
  • 数据模型:key-value,但 value 是结构化数据
  • 优点:数据结构要求不严格,表结构可变
  • 缺点:查询性能不高,而且缺乏统一的查询语法

列存储数据库

  • 应用举例:HBase
  • 应用场景:分布式的文件系统,大数据应用
  • 数据模型:以列簇式存储,将同一列数据存在一起
  • 优点:查找速度快,易于扩展
  • 缺点:功能相对局限

图关系数据库

  • 应用举例:Neo4j、HugeGraph
  • 应用场景:社交网络,推荐系统,构建关系图谱
  • 数据模型:图结构
  • 优点:查找速度快
  • 缺点:不易拓展

CAP 原理

传统的关系型数据库遵循 ACID 原理,即:

  • 事务:是逻辑上的一组操作,事务内的语句,要么全部执行成功,要么全部执行失败。
  • 原子性(Atomicity):指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 一致性(Consistency):指数据库总是从一个一致性状态切换到另一个一致性状态。
  • 隔离性(Isolation):指并发执行的一个事务之间不能互相干扰;
  • 持久性(Durability):指事务一旦提交,它对数据库的改变是永久性的。

而非关系型数据库遵循 CAP 原理,即:

  • 强一致性(Consistency):
  • 高可用性(Availability):
  • 分区容错性(Pratition tolerance):

CAP 原理的抉择

一个分布式系统不可能同时很好的满足 一致性、可用性和分区容错性这三个需求,最多只能同时较好的满足两个。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡,没有 NoSQL 系统能同时保证这三点。

经典的 CAP 搭配

  • CA - 单点集群,满足 一致性,可用性 的系统,通常在可扩展性上不太强大。例如 Oracle 数据库。
  • CP - 满足 一致性,分区容忍性 的系统,通常性能不是特别高。例如 Redis、Mongodb。
  • AP - 满足 可用性,分区容忍性 的系统,通常可能对一致性要求低一些。例如 大多数网站架构。

Base 简介

  • 基本可用(Basically available)
  • 软状态(Soft state)
  • 最终一致(Eventually consistent)
  • BASE 就是为了解决关系数据库 强一致性 引起的问题,进而引起的可用性降低而提出的解决方案。
  • 它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。

分布式和集群

分布式:不同的多台服务器上面部署不同的服务模块(工程),它们之间通过 RPC/RMI 之间通信和调用,对外提供服务和组内协作。

集群:不同的多台服务器上面部署相同的服务模块(工程),通过分布式调度软件进行统一的调度,对外提供服务和访问。

练习和总结

【Redis3.0.x】NoSql 入门的更多相关文章

  1. Dubbo入门到精通学习笔记(十八):使用Redis3.0集群实现Tomcat集群的Session共享

    文章目录 1.单节点访问http://192.168.1.61:8082/pay-web-boss/: 2.增加多一个消费者节点:192.168.1.62,以同样的方式部署pay-web-boss工程 ...

  2. linux安装redis-3.0.7

    一.Redis介绍 1.简介 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类 ...

  3. Spring Boot 2.0 的快速入门(图文教程)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! Spring Boot 2.0 的快速入门(图文教程) 大家都 ...

  4. Redis(一):NoSQL入门和概述

    NoSQL入门和概述目录导航: NoSQL入门概述 3V+3高 当下的NoSQL经典应用 NoSQL数据模型简介 NoSQL数据库的四大分类 在分布式数据库中CAP原理CAP+BASE NoSQL 入 ...

  5. redis-3.0.0安装

    redis-3.0.0安装 前言 redis是常用的no-sql数据库,常用于缓存数据,同时,他也可以持久化数据.他是C语言开发的,所以安装的时候需要编译. 单机版redis yum install ...

  6. NoSQL入门)(详细)

    NoSQL入门 (原创:黑小子-余) 1.NoSQL是什么 NoSql(NoSQL=Not Only SQL),意即“不仅仅是SQL”,泛指菲关系型数据库.传统的关系数据库在应付web2.0网站,特别 ...

  7. Redis3.0 配置文件说明

    背景: 以前有篇文章已经结果过了,现在复习一下,对Redis3.0进行说明: 参数说明: #redis.conf # Redis configuration file example. # ./red ...

  8. redis3.0.6安装(linux和windows)

    官网上描述安装方法如下:$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz$ tar xzf redis-3.0.6.tar.gz$ ...

  9. Redis3.0.1 Stable版本的集群部署(Mac)

    本文档基于如下原始文档(CentOS)创建: http://blog.csdn.net/xu470438000/article/details/42971091 修改了一些路径的错误,补全了一些命令执 ...

随机推荐

  1. 深入理解Java虚拟机(一)——JVM内存模型

    文章目录 程序计数器 定义 作用 特点 Java虚拟机栈 定义 特点 本地方法栈 定义 Java堆 定义 特点 方法区 定义 特点 运行常量池 直接内存 总结 Java虚拟机的内存空间分为五个部分: ...

  2. RMAN duplicate from active database

    在Oracle 11G有二种方法实现duplicate: 1.Active database duplication 2.Backup-based duplication Active databas ...

  3. [日常摸鱼]HDU2157 How many ways??

    hhh我又开始水题目了 题意:给一张有向图,多次询问一个点到另一个点刚好走$k$步的方案数取模,点数很小 每个$a,b,k$的询问直接把邻接矩阵$map$自乘$k$次后$map[a][b]$就是答案了 ...

  4. python去除文件中重复的行

    去除文件中重复的行 import os with open('db.txt','r',encoding='utf-8') as read_f,\ open('.db.txt.swap','w',enc ...

  5. ⑦SpringCloud 实战:引入Sleuth组件,完善服务链路跟踪

    这是SpringCloud实战系列中第7篇文章,了解前面第两篇文章更有助于更好理解本文内容: ①SpringCloud 实战:引入Eureka组件,完善服务治理 ②SpringCloud 实战:引入F ...

  6. ext4和xfs文件系统的扩容和收缩

    1. LVM逻辑卷管理 2. ext4文件系统 2.1 扩容CentOS6的根文件系统(ext4) 根文件系统在 /dev/VolGroup/lv_root 逻辑卷上,文件系统类型为ext4,大小为1 ...

  7. 轻松上手CSS Grid网格布局

    今天刚好要做一个好多div格子错落组成的布局,不是田字格,不是九宫格,12个格子这样子,看起来有点复杂.关键的是笔者有点懒,要写那么多div和css真是不想下手啊.多看了两眼,这布局不跟网格挺像吗?c ...

  8. 读取xlsx文件的内容输入到xls文件中

    package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...

  9. eclipse 项目没错却有红叉(解决方法)

    eclipse如何去掉无用的validation.优化eclipse 注意:本经验使用的eclipse版本为 Eclipse Java EE IDE for Web Developers. Versi ...

  10. 【C++】C++之类型转换

    作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14209848.html 目录 一.前言 二.static_cast 2.1 使用场景 2.2 实例 三.dyna ...