|
|
|
@ -0,0 +1,110 @@ |
|
|
|
# 10.30Redis学习笔记 |
|
|
|
|
|
|
|
## 1.Nosql概述 |
|
|
|
|
|
|
|
大数据时代--一般的数据库无法处理 |
|
|
|
|
|
|
|
### 1.1 发展 |
|
|
|
|
|
|
|
#### 1.1.1.单机MySQL时代 |
|
|
|
|
|
|
|
#### 1.1.2.缓存+MySQL+垂直拆分(读写分离) |
|
|
|
|
|
|
|
发展过程: |
|
|
|
|
|
|
|
优化数据结构和索引-->文件缓存(IO)-->Memcached(当时最热门) |
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 1.1.3.分库分表+水平拆分+MySQL集群 |
|
|
|
|
|
|
|
本质:数据库(读写) |
|
|
|
|
|
|
|
早些年:MyISAM :表锁,十分影响效率,高并发下出现严重锁问题 |
|
|
|
|
|
|
|
后来Innodb: 行锁 |
|
|
|
|
|
|
|
然后开始使用分库分表解决写压力,MySQL推出过表分区,但使用不多 |
|
|
|
|
|
|
|
之后MySQL集群出现,满足了当时的需求 |
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
#### 1.1.4.当今 |
|
|
|
|
|
|
|
数据量大变化快 |
|
|
|
|
|
|
|
MYSQL关系型数据库开始不够用 |
|
|
|
|
|
|
|
目前一个基本互联网项目的结构: |
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
### 1.2什么是NoSQL |
|
|
|
|
|
|
|
泛指非关系型数据库 Not Only SQL |
|
|
|
|
|
|
|
关系型数据库的存储是一个表格有行和列 |
|
|
|
|
|
|
|
很多数据像用户个人信息地理位置等等,不需要一个固定的格式,可以使用键值对控制,比如Map<String,Object> |
|
|
|
|
|
|
|
### 1.3NoSQL特点 |
|
|
|
|
|
|
|
**解耦** |
|
|
|
|
|
|
|
1.方便扩展(数据之间没有关系) |
|
|
|
|
|
|
|
2.大数据高性能(官方数据:Redis一秒可以写8万次,读取11万次,NoSQL的缓存记录级是一种细粒度的缓存,性能比较高 ) |
|
|
|
|
|
|
|
3.数据类型是多样性的,不需要事先设计数据库,随取随用 |
|
|
|
|
|
|
|
4.传统关系型数据库和NoSQL |
|
|
|
|
|
|
|
传统关系型数据库是结构化组织,数据和关系都存在单独的表中,有严格的一致性 |
|
|
|
|
|
|
|
NoSQL不仅仅是数据,没有固定的查询语言,有很多存储方式,比如键值对存储,列存储,文档存储,图形存储,最终一致性,CAP和BASE(异地多活),高性能,高可用,高可扩 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 2.NoSQL四大分类 |
|
|
|
|
|
|
|
KV键值对 |
|
|
|
|
|
|
|
新浪:Redis |
|
|
|
|
|
|
|
美团:Redis+Tair |
|
|
|
|
|
|
|
阿里、百度:Redis+memecache |
|
|
|
|
|
|
|
文档型数据库 |
|
|
|
|
|
|
|
mongoDB :是一个介于关系型数据库和非关系型数据库之间的产品 |
|
|
|
|
|
|
|
列存储数据库: |
|
|
|
|
|
|
|
HBase |
|
|
|
|
|
|
|
分布式文件系统 |
|
|
|
|
|
|
|
图形关系数据库:不是放图的是放关系的 |
|
|
|
|
|
|
|
Neo4j,InfoGrid等 |
|
|
|
|
|
|
|
## Redis入门 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|