【Redis3.0.x】NoSql 入门
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 入门的更多相关文章
- Dubbo入门到精通学习笔记(十八):使用Redis3.0集群实现Tomcat集群的Session共享
文章目录 1.单节点访问http://192.168.1.61:8082/pay-web-boss/: 2.增加多一个消费者节点:192.168.1.62,以同样的方式部署pay-web-boss工程 ...
- linux安装redis-3.0.7
一.Redis介绍 1.简介 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类 ...
- Spring Boot 2.0 的快速入门(图文教程)
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! Spring Boot 2.0 的快速入门(图文教程) 大家都 ...
- Redis(一):NoSQL入门和概述
NoSQL入门和概述目录导航: NoSQL入门概述 3V+3高 当下的NoSQL经典应用 NoSQL数据模型简介 NoSQL数据库的四大分类 在分布式数据库中CAP原理CAP+BASE NoSQL 入 ...
- redis-3.0.0安装
redis-3.0.0安装 前言 redis是常用的no-sql数据库,常用于缓存数据,同时,他也可以持久化数据.他是C语言开发的,所以安装的时候需要编译. 单机版redis yum install ...
- NoSQL入门)(详细)
NoSQL入门 (原创:黑小子-余) 1.NoSQL是什么 NoSql(NoSQL=Not Only SQL),意即“不仅仅是SQL”,泛指菲关系型数据库.传统的关系数据库在应付web2.0网站,特别 ...
- Redis3.0 配置文件说明
背景: 以前有篇文章已经结果过了,现在复习一下,对Redis3.0进行说明: 参数说明: #redis.conf # Redis configuration file example. # ./red ...
- 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$ ...
- Redis3.0.1 Stable版本的集群部署(Mac)
本文档基于如下原始文档(CentOS)创建: http://blog.csdn.net/xu470438000/article/details/42971091 修改了一些路径的错误,补全了一些命令执 ...
随机推荐
- 深入理解Java虚拟机(一)——JVM内存模型
文章目录 程序计数器 定义 作用 特点 Java虚拟机栈 定义 特点 本地方法栈 定义 Java堆 定义 特点 方法区 定义 特点 运行常量池 直接内存 总结 Java虚拟机的内存空间分为五个部分: ...
- asp.net-ajax使用-WebMethod使用
1.js $.ajax({ type: "POST", contentType: "application/json", url: "activity ...
- C++异常之五 异常和继承
异常和继承 异常也是类,我们可以创建自己的异常类,在异常中可以使用(虚函数,派生,引用传递和数据成员等), 下面用一个自制的数组容器Vector,在对Vector初始化时来对Vector的元素个数进行 ...
- oracle查年度周末日期
1.查年度周末日期sql SELECT distinct TRUNC(TO_DATE('2019-01-01','yyyy-mm-dd')+ rownum,'iw')+ 5 AS sat, TRUNC ...
- js上 二十、综合案例
二十.综合案例 题目一: **1. ** 数组随机 描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据 用例: randomArray([ ...
- Thymeleaf的th
th:action 定义后台控制器路径,类似<form>标签的action属性. <form id="login-form" th:action="@{ ...
- 个人博客搭建Python实现-尝试-遇到的问题(10.1.1)
@ 目录 前提 1.Git相关 2.环境相关 3.nginx相关 4.linux相关 关于作者 前提 自己搭建了一个简单的flask微信公众号 在github上找到一个django搭建的博客网站 有一 ...
- 在Linux中要修改一个文件夹或文件的权限
在Linux中要修改一个文件夹或文件的权限我们需要用到linux chmod命令来做,下面我写了几个简单的实例大家可参考一下. 语法如下: chmod [who] [+ | - | =] [mode] ...
- linux重启后nginx服务无法启动
查看ngin.conf pid的内容 例如: pid /usr/local/nginx/logs/nginx.pid 根据以上配置内容来做,检查/usr/local/nginx/logs/是否存在,如 ...
- 基于 WebRTC 的 RTSP 视频实时预览
简介 背景 由于项目需要,需要使用摄像头预览功能,设备型号为海康威视.目前已存在的基于 FFmpeg 的方案延迟都太高,所以项目最终选择基于此方案. 方案 方案选用为基于 WebRTC 的视频即时通讯 ...