【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 修改了一些路径的错误,补全了一些命令执 ...
随机推荐
- vertical-align什么时候使用?常用的值分别有什么作用?
设置元素的垂直对齐方式 常用的值: 1.baseline:默认.元素放置在父元素的基线上. 2.sub:垂直对齐文本的下标. 3.super:垂直对齐文本的上标 4.top:把元素的顶端与行中最高元素 ...
- 推荐系统实践 0x0d GBDT+LR
前一篇文章我们介绍了LR->FM->FFM的整个演化过程,我们也知道,效果最好的FFM,它的计算复杂度已经达到了令人发指的\(n^2k\).其实就是这样,希望提高特征交叉的维度来弥补稀疏特 ...
- vue Export2Excel 导出文件
使用需要引入这些js 在src目录下创建一个文件(vendor)进入Blob.js和Export2Excel.js npm install -S file-saver 用来生成文件的web应用程序 n ...
- 【复习笔记】重习 AC 自动机
发现已经忘了许多....于是复习一下 基础要点概况 AC 自动机基于 Trie 树 的结构,即构建 AC 自动机前需要先建 Trie. 一个状态中除了转移 \(\delta\) 之外还有失配指针 \( ...
- 【AtCoder AGC023F】01 on Tree(贪心)
Description 给定一颗 \(n\) 个结点的树,每个点有一个点权 \(v\).点权只可能为 \(0\) 或 \(1\). 现有一个空数列,每次可以向数列尾部添加一个点 \(i\) 的点权 \ ...
- 前端js实现九宫格模式抽奖(多宫格抽奖)
介绍: 前端九宫格是一种常见的抽奖方式,js实现如下,掌握其原理,不论多少宫格,都可以轻松应对.(代码可复制直接运行看效果). 该案例以四宫格入门,可扩展多宫格,奖品模块的布局可自由设置. <! ...
- Python Windows开发环境搭建
一.下载python安装包 python官网地址:https://www.python.org/,下载windows平台包并安装 二.在Windows设置环境变量 计算机右键,选择属性,在高级系统设置 ...
- [日常摸鱼]bzoj4802 欧拉函数-PollardRho大整数分解算法
啊居然要特判,卡了好久QAQ (好像Windows下的rand和Linux下的不一样? QwQ一些东西参考了喵铃的这篇blog:http://www.cnblogs.com/meowww/p/6400 ...
- docker 安装es跟kibana
首先docker 查询es docker search elasticsearch 在docker pull elasticsearch:7.9.3 docker在查询 kibana docker ...
- 我们是如何实现DevOps的
一.DevOps的理解 DevOps的概念理解 DevOps 的概念在软件开发行业中逐渐流行起来.越来越多的团队希望实现产品的敏捷开发,DevOps 使一切成为可能.有了 DevOps ,团队可以定期 ...