文档介绍:高并发解决方案总结
使用缓存
在绝大多数情况下,服务器的压力都会集中在数据库,减少数 据库的访问次数,就可以减轻服务器的压力。所以,在高并发场景 下,缓存的作用是至关重要的。
redis 缓存数据库,它可以很好的在一定程度上解决一瞬间高并发解决方案总结
使用缓存
在绝大多数情况下,服务器的压力都会集中在数据库,减少数 据库的访问次数,就可以减轻服务器的压力。所以,在高并发场景 下,缓存的作用是至关重要的。
redis 缓存数据库,它可以很好的在一定程度上解决一瞬间的并 发量, redis 之所以能解决高并发的原因是它可以直接访问内存,提 高了访问效率,解决了数据库服务器压力。
使用缓存框架的时候,我们需要关心的就是什么时候创建缓存 和缓存失效策略。
缓存的创建可以通过很多的方式进行创建,具体也需要根据自 己的业务进行选择。例如,供应商平台的应用信息,应用上线后就 进行缓存。需要注意的是,当我们修改或删除应用信息的时候,我 们要考虑到同步更新该条缓存。
数据库优化
数据库优化是性能优化的最基础的一个环节,虽然提供了缓存 技术,但是对数据库的优化还是一个需要认真的对待。数据库优化 的方式很多,这里说下分表与分区。
? 分表
分表的适用场景
一张表的查询速度已经慢到影响使用的时候。
当频繁插入或者联合查询时,速度变慢
分表后数据都是存放在分表里,总表只是一个外壳,存 取数据发生在一个一个的分表里面。分表的重点是存取数据时, 如何提高数据库的并发能力。分表后,单表的并发能力提高了, 磁盘 I/O 性能也提高了。
以安审日志服务的历史记录表为例:
表按年月拆分,格式为:表名 + 年+ 月,例如:
TEST_202001、TEST_202002、、TEST_202003 ……然后可以 根据日期来查询。
? 分区
分区的适用场景
1. 一张表的查询速度已经慢到影响使用的时候。
2. 表中的数据是分段的。
对数据的操作往往只涉及一部分数据,而不是 所有的数据。
分区是把一张表的数据分成 N 多个区块,这些区块可以 在同一个磁盘上,也可以在不同的磁盘上。分区把存放数据的 文件分成了许多小块,分区后的表还是一张表,数据处理还是 由自己来完成。
分离数据库中活跃的数据
数据库的数据虽然很多,但是经常被访问的数据还是有限的, 因此可以将这些相对活跃的数据进行分离出来单独进行保存来提高 处理效率。其实前边使用 redis 缓存的思想就是一个很明显的分离数 据库中活跃的数据示例,将应用经常使用的数据缓存在内