请教经验丰富的大侠们几个java面试问题

--------------------------redis相关问题---------------------------
redis相关问题:
比如恶意攻击,大量空请求进行查询,redis没有值就不听查询数据库,最后导致崩溃
如果查询db没返回值情况怎么解决?
如果查询db有返回值且每次都不一样情况怎么解决?
如果每次都是同一个请求或者不同怎么去区分解决?

--------------------------数据库或者其它设计问题---------------------------
业务场景:
比如定时调facebook,新浪, 头条的api拉取某些数据,它们的数据类型结构都不一样,现在要讲这些数据进行整合去重等等一系列操作,最终整合成自己的想要的数据信息
如果后期又要向其它平台拉取信息进行整合,目的都是一样的,而且数据结构信息有大不同
那么这应该怎么设计才能保证更高效以及方便后期拓展和维护?

业务场景:
假设前端传一些字段,每次可能不一样的字段,后端有百万级条广告数据
现在根据传过来的信息去匹配出后端相应的数据,可能只传一个字段,可能多个等
怎么设计能够毫秒级查询,能快快速匹配检索,你觉得最优最高效方案?
百万级数据或者亿级数据有什么存储方案? (有足够的硬件软件条件供使用,给出最优设计方案)

业务场景:
设计一个报表生成的服务或者api都行
比如不同项目部门都有生成报表需求,所以会公用这个,但是它们的数据类型,业务情况都不一样,要求出来的报表可能输柱状图,可能要饼图,数据汇总等等,最总都会调用这个生成报表,生成想要的报表
怎么设计实现这个报表呢,符合不同业务场景,可拓展高可用

大概描述就是这样
求大侠们看看应该怎么回答比较好,思路啥的都可以说说
经验有限,大侠们多多指点

阅读 1.5k
1 个回答

redis的问题,应对恶意攻击,你需要缓存哪些不存在的数据就可以了,db没返回值也需要缓存,避免下次再到数据库查询道理和前面相同,如果有返回值且每次都不一样,可以设置过期时间,第四个问题没有get到面试官要问的点。

第一个业务场景考的应该是扩展性,非结构化的NoSQL具有比较好的扩展性,如Mongodb,或者用关系型数据库的小表设计。

第二个业务场景可以使用ElasticSearch,利用倒排索引可以达到快速检索的效果。数据量越来越大应该要考虑到数据服务的弹性伸缩。ElasticSearch伸缩,HBASE伸缩,hadoop等一些大数据处理方案,总之大数据处理离不开数据分片和路由。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题