一、何为NoSQL?
分布式开发:SpringBoot、SpringCloud。
MySQL数据库底层:B+ Tree,一个机器内存也放不下。
访问量(读写混合),一个服务器承受不了,所以需要读写分离。
加入Memcached(缓存)+MySQL+垂直拆分(实现读写分离)
添加缓存,提升读的速度。
优化数据结构和索引 > 文件缓存(IO)> Memcached
分库分表+水平拆分+MySQL集群
本质:数据库(读、写),MyISAM为表锁,Innodb为行锁。
数据量变大,关系型数据库不够使用。 就使用专业的数据库存储专业的数据。MySQL在大数据的压力下早已不堪重负。
用户不能直接访问到是数据库,先访问企业防火墙(必须),所以过了防火墙需要到达负载均衡-主机(负载均衡存在主备两个机器),
APP服务器集群:
MySQL关系型数据库:
缓存服务器:
移动信息服务器:
集群Hadoop:存文件搭建集群
实时通信服务器:客户接单
流媒体服务器:看视频
图片服务器:
文件服务器:
等等
为什么要使用NoSQL?
因为NoSQL可以解决爆发式增长的信息量。
NoSQL非关系型数据库。
关系型数据库就是表格、行、列。非关系型数据库可以满足web2.0互联网。
特点:
1. 方便扩展
2. 大数据量高性能(Redis 每秒写8万,读11万,NoSQL缓存级位细粒度缓存)
3. 无需设置数据库,随取随用。
NoSQL
不仅仅位数据
无固定的查询语言
键值对存储,列存储,文档存储,图形数据库
最终一致性
CAP定理和BASE
高性能、高可用、高可扩展
图关系型数据库:存放关系,如社交网络。
Redis入门
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis作用:
- 内存存储、持久化(将内存内容放入本地)、内存中的机制属于断电即丢失、持久化(RDB,AOF)。
- 效率高,用于告诉缓存。
- 发布订阅新系统、地图信息分析、计时器、计数器(浏览量)。
Redis特性:多样的数据类型、持久化、集群、事务 、
Windos上的Redis
默认端口为:6379
官方版本不支持Windos。
Linux上安装Redis
1.下载安装包:redis
2. 通过 tar -zxvf 对安装包进行解压
3. 进入解压后的目录:可以看到 redis.conf 的配置文件
4. 安装C语言编译器基本环境:yum -y install gcc
5. 执行 make 配置redis环境配置,make install 对redis进行安装
6. 安装的程序默认都在 /usr/local/bin 目录下
7. 将配置文件 redis.conf 复制到:/usr/local/bin
8. 建议将配置文件进行备份操作:cp
对配置文件的修改:
需要修改的内容:
daemonize yes # 确保程序启动之后后台运行
启动服务:
需要将配置文件作为参数,保证程序后台运行
redis-server redis.conf
redis-cli -p 6379 # 客户端连接redis服务,通过6379端口
ping # 测试连接
ps -ef | grep redis # 查看进程 ,连接的客户端可直观查看
单机多Redis:之后由于需要启动集群,所以需要启动好多个 redis服务 ,也要通过搭建好多个客户通过不同端口进行连接测试(不同服务器使用不同的端口)