nosql:泛指非关系型数据库
1、具有非常高的读写性能
2、不保证关系数据的ACID特性(原子性、一致性、隔离性、持久性)
3、分类:
键值(key-value)存储数据库 ,场景:内容缓存,主要用于处理大量数据的高访问负载
列存储数据库:键指向了多个列,场景:分布式的文件系统
文档型数据库,场景:web应用
图形数据库,场景:社交网络
4、特点:
易扩展:因为数据之间没有关系,所以容易扩展
大数据量,高性能:具有非常高的读写性能,尤其在大数据下,因为无关系行,以及数数据库的结构简单
灵活的数据模型:因为不需要创建表字段,可以随时存储自定义的数据格式
高可用
redis是最受欢迎的的nosql数据库之一,是键值对数据库
特性如下:
1,基于内存运行,性能高
2,支持分布式,理论上能无限扩展
3,key-value存储
C/S通讯模型:客户端-服务器
B/S通讯模型:浏览器-服务器
redis为C/S通信模型
redis应用场景:缓存系统(热点数据:高频度,低频写),计数器,消息队列,排行榜,社交网络,实时系统
redis提供数据类型:5种自有类型,1种自定义类型
5种:String,哈希,列表,集合,顺序集合
备注:什么是哈希?把任意长度的输入通过散列算法变换为固定长度的输出
redis特性:
1,事务:命令序列化,按顺序执行,原子性
2,发布订阅:pub发布消息,sub接收消息
3,Stream?
redis常见问题 :
1,击穿:在redis中获取key,但是key不存在,需要想DB发送一次请求的行为称为击穿
原因:①第一次访问,②恶意访问不存在的key,③key过期失效
规避方案:①服务器启动时提前写入②规范key的命名,使用中间件拦截③对高频的key设置合理的TTL或永不过期
2,雪崩:redis缓存层因为某些原因宕机后,所有请求涌入存储层,短时间内的高并发请求导致存储层挂机,称之为“redis雪崩”
规避方案:①使用redis集群②限流
redis客户端通信协议:RESP(redis Serialization protocol)
redis集群内部通信协议:RECP(redis cluster protocol)
1,每个node两个tcp连接:一个负责客户端,一个负责node
redis块的原因:
1,基于内存
2,数据结构简单
3,使用多路I/O复用模型:多路指多个网络连接,复用指同一个现成
哨兵模式:哨兵向redis发送命令检查redis的状态,相当于负载均衡的健康检查



