1 关系型数据库
1.1 读写分离
本质是将访问压力分散到集群中的多个节点,但没有分散存储压力。
读写分离:实现简单,但实际应用中需要应对复制延迟带来的复杂性。
解决复制延迟的几种常用方法:
一、写操作后的读操作指定发给数据库主服务器。
二、读从机失败后再读一次主机。
三、关键业务读写操作全部指向主机,非关键业务采用读写分离。
1.2 分库分表
分库分表能分散访问压力和存储历程。
(1)业务分库
(2)分表:垂直分表和水平分平。
水平分平最主要的复杂性:路由:一、范围路由;二、hash路由;三、配置路由(路由表)
分库分表实现方式:程序代码封装和中间件封装。
2 NoSQL
2.1 K-V存储
2.2 文档数据库
2.3 列式数据库
2.4 全文搜索引擎
3 缓存
3.1 缓存穿透
(1)存储数据不存在
(2) 缓存数据生成耗费大量时间或资源
3.2 缓存雪崩
两种解决方法:
(1)更新锁
(2)后台更新:一、定时更新;二、消息队列通知
3.3 缓存热点
缓存热点的解决方案就是复制多分份缓存。