什么是NoSQL
NoSql
NoSQL = Not Only SQL(不仅仅是SQL)
关系型数据库:表格,行,列
泛指非关系型数据库,超大规模,高并发的社区
很多的数据类型,例如:用户的个人信息,社交网络,地理位置,这些数据的存储不需要一个固定的格式,不需要多余的操作就可以横向扩展了!Map<String,Object>,使用键值对来控制
NoSQL的特点
-
方便扩展(数据之间没有关系,很好扩展!)
-
大数据量高性能(Redis一秒写8万次,读取11万,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高)
-
数据类型是多样型的,不需要事先设计数据库,随取随用,如果是数据量十分大的表,很多人就无法设计了
-
传统RDBMS和NoSQL
传统的RDBMS
- 结构化组织
- SQL
- 数据和关系都存在单独的表中,row,col
- 操作语言,数据定义语言
- 基础的事务操作
- …
NoSql
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储、列存储、文档存储、图形数据库(社交关系)
- 最终一致性
- CAP定理 和BASE (异地多活),初级架构师!
- 高性能、高可用、高可扩展性
- …
了解:3V+3高
大数据的3V:主要是描述问题的
大数据的3高:主要是对程序的要求
NoSQL的四大分类
KV键值对:
- 新浪:Redis
- 美团:Redis = Tair
- 阿里、百度:Redis + memecache
文档型数据库(bson格式和json一样):
- MongoDB(一般必须要掌握)
- MongoDB是一个基于分布式文件存储的数据库,C++编写的,主要是用于处理大量的文档
- MongoDB是一个介于关系型数据库和非关系型数据库中间的产品!MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的!
- ConthDB
列存储数据库:
- HBase
- 分布式文件系统
图形关系数据库:
- 它不是存图形的,放的是关系,比如:朋友圈社交网络,广告推荐!
- Neo4j,InfoGrid
Redis入门
概述
Redis是什么?
Redis(Remote Dictionary Server ),即远程字典服务
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步
免费和开源!当下最热门的NoSQL技术之一!也被称为结构化数据库!
Redis能干吗?
1、内存存储、持久化、内存中是断电即失、所以说持久化很重要(rdb、aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量!)
6、…
特性
1、多样的数据类型
2、持久化
3、集群
4、事务
…
学习中需要用到的东西
1、官网:https://redis.io/
2、中文网:http://www.redis.cn/
3、下载地址:通过官网下载即可
注意:Windows的在GitHub上下载,(停更很久了)
Redis推荐在Linux服务器上搭建,所以以下是基于Linux学习
Windows下安装
- 下载安装包:1. https://github.com/dmajkic/redis/releases
2. https://github.com/tporadowski/redis/releases
3. https://github.com/microsoftarchive/redis/releases - 下载完毕得到安装包
- 解压到自己电脑的环境目录就可以了,Redis非常的小
- 开启Redis,双击运行服务即可
-
使用Redis客户端来连接Redis(此时服务不要关)
此时成功连接本地服务6379
所以Windows使用确实简单,但是还是推荐在Linux去开发!
windows配置本地Redis
-
在conf中修改一些设置
-
protected-mode yes 改为 protected-mode no (即该配置项表示是否开启保护模式,默认是开启,开启后Redis只会本地进行访问,拒绝外部访问)。
-
注释掉 bin127.0.0.1 即 #bin 127.0.0.1 (ps: 不注释掉,表示指定 redis 只接收来自于该 IP 地址的请求,注释掉后,则表示将处理所有请求)。
-
-
修改application.dev中的redis配置为本地
注:没有设置密码就不要用密码
Linux下安装