业务场景
背景:后台数据分析平台的一个筛选功能,大致有100个表头字段,可根据筛选决定哪些展示不展示,勾选哪些表头字段就展示哪些字段
实现方案:
- 前端请求后端携带哪些表头需要展示
- 后端将需要表头放入Redis的HASH结构缓存,便于下次直接展示,同时根据选择的表头返回对应字段的数据
- 具体实现逻辑是后端需要将100个字段根据规则事先计算出来并保存,等待前端获取时返回
争议:
我:我用的Redis缓存实现的,凌晨定时任务将100个字段的计算结果写入Redis,然后再写入Mysql落地,用时直接根据前端选择返回数据。
// 存数据
127.0.0.1->HSET redisKey filed filed_value filed_2 filed_value_2
// 取数据
127.0.0.1->HGET redisKey field
业务负责人:认为不应该用Redis,并没有解决什么问题,而且怎么系统复杂度,别人也看不懂
查询数据也麻烦··· 认为可以用定时将计算结果写入Mysql,新建一张表,用来储存计算结果,即第二种解决方案。
第一种:
第二种:
第三种:
我个人倾向于最后一张方案,因为数据查询压力都放在了Redis上,转移了Mysql的压力