dms icon indicating copy to clipboard operation
dms copied to clipboard

数据的缓存

Open wangwugang1314 opened this issue 4 years ago • 1 comments

个人认为单独的数据缓存使用redis是不行的,就像您说的那样如果数据量比较大,redis集群有限的话,就会导致数据库压力比较大,之前我也有写过类似的静态配置平台,也出现相同问题并考虑过数据的缓存方案,总结了一点,可以把数据缓存分类型,分等级去做,可以将数据类型分为多种,界面上可以选择,比如数据量大小,数据请求量是否频繁,如果数据量比较大,并且不频繁就不适合redis, 缓存策略,比如返回304状态,比如做CDN,比如将数据JSON静态化存储,如果数据量小的话存redis没问题,但是要配置适当的缓存时间,还要区分数据是否频繁,是否经常不变动的数据,就可使用浏览器缓存,redis也可以不存储数据,存储数据更新时间,校验数据数据时间返回304状态,还可以做多级换存策略,先判断是否是缓存时间不变返回304,二级是redis数据缓存,如果时间改变redis获取,如果resis没有,json静态获取,如果再没有就数据库读取,但是都需要做数据的区分,数据量大小,数据的频繁性,最好是单个数据可以界面单独配置缓存策略,重点是数据改变一定要清楚缓存,这个只是我个人见解

wangwugang1314 avatar Sep 03 '20 04:09 wangwugang1314

@wangwugang1314 你的思路OK的,对于单页应用来讲多走一次CDN很没必要,其实解决思路也挺多的:

  1. 对于不需要做参数区分的数据可以直接注入到index.html模板里;
  2. 类似的,既想高性能又想高可用,其实serverless也是一个不错的选择,动态的去生成index.html,做一个index缓存,同时还能达到类似CDN的效果;
  3. 加入redis的话做一个数据分级缓存也很OK的。👍

gavin1995 avatar Oct 23 '20 11:10 gavin1995