NoSQL,泛指非关系型的数据库,区别于关系型数据库,NoSQL不保证ACID特性(易扩展、大数据量、灵活数据模型、高可用)
非关系性数据库分类:
1)键值(key-value)存储数据库
2)列存储数据库
3)文档型数据库
4)图形数据库
Redis:remote dictionary server,远程字典服务,是开源使用ansi c语言编写、支持网络、可基于内存或持久化的日志型、key-value数据库。
1)支持数据持久化,周期性的把内存中更新的数据写入磁盘或把修改操作写入追加的记录文件,重启的时候可以再次加载
2)redis可以支持key-value、list、set、zset、hash等数据结构存储
3)redis支持数据备份,即master-slave模式的数据备份。
云数据库Redis支持主从、集群和读写分离架构。
1)标准架构:主从(master-slave)双副本架构,由主节点提供日常服务,备节点提供高可用。当主节点发生故障,系统会自动在30s内切换至备节点。
2)集群架构:由代理节点、数据分片和配置服务器组成,可通过增加数据分片实现横向扩展。每个数据分片均为双副本(分别部署在不同的机器上)高可用架构,主节点故障后,系统自动进行主备切换。
3)读写分离架构:由代理节点、主从节点和只读节点构成。只读节点采用链式复制架构,扩展只读节点个数可使整体实例性能呈线性增长。
1)计算资源的性能边界
使用通配符、lua并发、1对过pubsub、热点key等会大量消耗计算资源,集群架构下还会导致访问倾斜,无法有效利用所有数据分片
2)存储资源的性能边界
streamin慢消费、大key等会占用大量存储资源,集群架构下还会导致数据倾斜,无法有效利用所有数据分片
3)网络资源的性能边界
扫描全库(key命令)、大value、大key的范围查询等会消耗大量的网络资源,且极易引发线程阻噻
热key发起的大量读请求导致的访问倾斜,云数据库redis新增代理查询缓存功能,通过此功能,代理节点会缓存热点key对应的请求和查询结果,当在有效时间内收到同样请求可直接返回结果到客户端,无需再和后端数据分片交互。