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. react路由初探(1)

    import React from 'react'; import logo from './logo.svg'; import './App.css'; class About extends Re ...

  2. activiti环境安装

    使用Eclipse安装activiti插件的时候,没有安装成功,参考这边文章才成功,链接:https://jingyan.baidu.com/article/4dc408480d4201c8d846f ...

  3. linux 设置别名

    [root@oldboyedu45-xy data]# alias(查找别名) alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll=' ...

  4. Android开源项目分类汇总-转载

    太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参 ...

  5. 手动实现Promise.all()

    Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例. Promise.all()方法的参数可以不是数组,但必须具有 Iterator 接口,且返回的每 ...

  6. 使用Spark的newAPIHadoopRDD接口访问有kerberos认证的hbase

    使用newAPIHadoopRDD接口访问hbase数据,网上有很多可以参考的例子,但是由于环境使用了kerberos安全加固,spark使用有kerberos认证的hbase,网上的参考资料不多,访 ...

  7. web服务器专题:tomcat(二)模块组件与server.xml 配置文件

    web服务器专题:tomcat(二)模块组件与server.xml 配置文件 回顾: Web服务器专题:tomcat(一) 基础模块 一个Server.xml的实例 <?xml version= ...

  8. 面试 11-00.JavaScript高级面试

    11-00.JavaScript高级面试 #前言 一.基础知识: ES 6常用语法:class .module.Promise等 原型高级应用:结合 jQuery 和 zepto 源码 异步全面讲解: ...

  9. PHP 直接使用html输出excel

    1 <?php 2 header("Cache-Control:public"); 3 header("Pragma:public"); 4 5 head ...

  10. 卡尔曼滤波学习笔记1-Matlab模拟温度例子--代码比较乱,还需优化

    温度模拟参数选取 xk 系统状态 实际温度 A 系统矩阵 温度不变,为1 B.uk 状态的控制量 无控制量,为0 Zk 观测值 温度计读数 H 观测矩阵 直接读出,为1 wk 过程噪声 温度变化偏差, ...