前言
** Reids是一种key-value形式的高性能的nosql数据库,提供了各种数据结构存储,具有高性能的读写功能,应用很广泛。**
NoSQL入门和概述
在分布式数据库中的CAP原理CAP+BASE
- 前言
我们学的越多就越发现没有那么多先技术,所谓的新技术都是在就技术上进行的升级和补充,都是一种功能的传递,新技术的产生一定是具备了旧技术可以完成的功能,可以对他实现完美的替换,所以,这是一种递棒行为,是一种继承的关系,父类能做的都能做,子类能做的更多功能也更加的强大, 性能也更加的好。
-什么是CAP和BASE
**1、CAP
**
- 传统R数据库(关系型数据库)和NoSQL
**是传统的ACID,指的就是事务的四大特性,如果在在非关系性数据库当中如何满足这些东西呢?对应的就是我们的Nosql当中的CAP特性,强一致性,可用性,分区容错性。
1、强一致性:与实际事实数据的高度一致性
2、可用性:在三高情况下,表现出来三高特性。
3、分区容错性:分区容错性
Nosql理论,传统的数据库ACID是都满足的,Cap只能痛苦的三选二,CAP不能三个都满足**
- 什么是CAP的三进二
**
分布式系统的时代,分区容错性是我们必须要实现的东西,分布式系统是不是部署在同城的,N多个服务器可能在多个城市,多个机房,
C:强一致性,A:高可用性,P:分布式容忍性
CA:传统性关系型数据库RDBMS
AP:大多数网站架构的选择
CP:Redis,Mongodb
Nosql采用的事CP,Nosql我们使用的初衷是为了个数据库减负,我们最终需要有一个一致性,
分布式架构的时候必须要作出取舍
**
- BASE
所有的分布式系统都是在高峰时段,牺牲C来换取AP但是当流量下来之后,我们还是需要保证数据的一致性,这个对Cap这个理论在电商界比较友好的处理方式。
**
分布式+集群简介
分布式:
集群:
负载均衡:流量上来的时候,我们各台服务器要雨露均沾,不能按着一只羊使劲肯,
Redis
Redis是什么
开源免费、C编写、遵守BSD协议、高性能、键值对形式的、分布式、基于内存、Nosql数据库
Redis特点
**它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
最常用的是String类型,因为String类型可以模拟所有的数据类型
支持异步把数据写到硬盘上。
**
Redis支持数据库的备份,主从模式的数据备份 ,
应用场景
1、内存存储和持久化:Redis支持异步将数据从内存中写到硬盘中,同时不影响继续服务。
2、取最新N个数据的操作,如:可以将最新的10条评论的Id放到Reids的List集合当中。
3、可以存储Session对象,进行Session信息的共享。需要设定定时过期的功能
4、充当消息中间件
5、定时器、计数器
Redis怎么玩?
Redis安装
**Redis提供了连个版本,一个是win,一个Linux,我们需要在Liux下边进行安装,我们一定要在Linux上边安装Redis,企业里边就认一个,Linux下边。
第三方软件我们都放在opt下边。
**
Gcc命令没找到,说明本机Linux系统中缺少Gcc的命令。Gcc
Rdis相关知识介绍
1、Redis默认端口号6379怎么来的?
merz在非智能手机的按键,这就是一个说明
2、Redis当中默认提供了16个数据,编号是从0-15,我们默认使用的都是0号库,我们可以通过select num来进行切库,Redis当中的数据库是统一进行管理的,所有的库密码是相同的,而我们使用的都是零号库
3、什么叫做串行操作?
串行操作就是一个一个的来进行,我进行第一个操作的时候第二个要等,在memcache这门技术中使用的是多线程+锁的这种机制,然而Redis当中使用的单线程+多路IO复用的这种方式,这样的方式更高效,使CPU告诉运转。
4、什么叫单线程+多路IO复用?
在火车站当中多个人找一个黄牛去火车站中进行买票,黄牛在火车站当中买票肯定是单线程操作,那么多路IO复用是怎么体现出来的呢?多路IO复用是在这些购票着通知到了黄牛去买票之后,其他人去做其他的事情,然后黄牛买到了什么票就通知对应的那一路去买票,这样的话就保证CPU一直在工作,这是Redis底层工作的原理。
Redis概述和安装
周期性写入到磁盘中指的就是持久化操作,实现主从同步的操作
Redis可以配合关系型数据库做高速的缓存和Session的的共享,