缓存背景
对于大面积的QPS请求 ,传统的数据库的读写分离已经无法满足。当数据库的最大连接数 都达到峰值,这时候如果只是一味的加数据的DB机器 也许可以缓解一下DB压力。但是数据库机器一般都比较贵,从经济成本上来说,不可取。那么对于像秒杀这种场景,一段时间的查询量非常大,活动一结束查询量就会降下来,该如何是好?这时候自然想到缓存系统,提高数据库的响应时间,同时很多请求不必要再查询数据库。
1.缓存设计
图片取自互联网来源 https://www.jianshu.com/p/76b82129b78f
当请求发送给服务器的时候,缓存找不到,就查询数据库里,同时回写到缓存。当第二次查询时就可以不用查询数据库,直接到缓存中取数值了。
2.好了缓存设计好了,似乎可以提高数据的并发量了 ,不用加机器了,节约了不少钱,但是这种设计是否是非常完美呢?试想一下,如果数据库的值变了,缓存如何跟着一起更新最新的值呢。
2.缓存策略
2.1一般2种方案
更新数据数据时,顺便更新一下缓存 这样数据就一直是最新的数据,实际开发