【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 修改了一些路径的错误,补全了一些命令执 ...
随机推荐
- vue 中 this.$options.data() 重置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- LibreOj-10012-「一本通-1-2-例-2」Best-Cow-Fences
题目地址 思路 二分平均值,区间为$0$~$2000$.将每个$a[i]$减去平均值,就只用考虑字段和是否$>=0$了. 关于计算子段和,可以使用前缀和表示,$sum[i]$表示前$i$个数的和 ...
- 题解-洛谷P4859 已经没有什么好害怕的了
洛谷P4859 已经没有什么好害怕的了 给定 \(n\) 和 \(k\),\(n\) 个糖果能量 \(a_i\) 和 \(n\) 个药片能量 \(b_i\),每个 \(a_i\) 和 \(b_i\) ...
- Java并发编程的艺术(三)——synchronized
什么是synchronized synchronized可以保证某个代码块或者方法被一个线程占有,保证了一个线程的可先性.java 1.6之前是重量级锁,在1.6进行了各种优化,就不那么重了,并引入了 ...
- Spring中毒太深,离开Spring我居然连最基本的接口都不会写了
前言 随着 Spring 的崛起以及其功能的完善,现在可能绝大部分项目的开发都是使用 Spring(全家桶) 来进行开发,Spring也确实和其名字一样,是开发者的春天,Spring 解放了程序员的双 ...
- 一文入门Redis
一文入门Redis 目录 一文入门Redis 一.Redis简介 二.常用数据类型 1.String(字符串) 2.Hash(哈希) 3.List(列表) 4.Set(集合) 5.Zset(有序集合) ...
- Hive中自定义序列化器(带编码)
hive SerDe的简介 https://www.jianshu.com/p/afee9acba686 问题 数据文件为文本文件,每一行为固定格式,每一列的长度都是定长或是有限制范围,考虑采用hiv ...
- vue第十一单元(内置组件)
第十一单元(内置组件) #课程目标 熟练掌握component组件的用法 熟练使用keep-alive组件 #知识点 #1.component组件 component是vue的一个内置组件,作用是:配 ...
- Python 学习笔记(上)
Python 学习笔记(上) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(上) 基础知识 基本输入输出 模 ...
- TreeMap集合根据指定元素,进行删除和修改的两种方式实现及bug梳理
TreeMap根据key中的指定元素进行删除修改的两种方式实现及注意事项: 方式一:利用增强for进行删除和修改 总结:逻辑简单,但是局限性太强,如果排序规则是从小到大进行排序的,则该方法不能进行删除 ...