千万级数据如何进行缓存

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1千万左右的数据量,数据有查询次数的限制,比如每条记录每天只能查询2次,每周只能查询5次,每月只能查询10次,现在要求在查询的时候能够很快的反馈是否到达查询次数上限,如果没有记录,则增加此记录的查询次数,每天的查询量非常大,可能达到千万级。
目前有3个方案去解决这个问题,如下:

方案1. 采用自定义缓存,直接把1千万数据,根据数据标识作为key放到hashmap里面,每次查询的时候就直接根据key去找到相应的记录,并更新对应的查询次数,并定时把记录写到文件里面,防止数据全部丢失,此方案优点是快,缺点是需要太多的内存,如果缓存里面没有这条记录,需要把这条记录也加进去,不知道会不会太慢。

方案2. 采用关系数据库,比如oracle,把这些记录都放到oracle的表里面,每次查询的时候到oracle里面去查,但是这么频繁的操作和这么大的数据量,查询的速度可能会大打折扣,符合不了要求。

方案3. 采用内存数据库,比如fastdb,h2之类的内存数据库,这个不是很熟悉,也没有经验,只是大概的想到可以这么做。

现在倾向于使用方案1,请探讨一下,方案1是否可行?方案2,3是否存在可优化的地方?

相关文档
最新文档