这种场景怎么缓存 一个记录表,非常多,每秒钟都上千条数据插入 注意是记录表,所以产品id会重复的 现在会经常查询过去24h记录的所有产品信息 粗略统计24h不重复的产品有10w条 记录上千万
这不得上 Elasticsearch
TIDB试试
需要细化一下使用场景,如果是分页查的话,可以把最近 ID 做个缓存服务,按查询条件从缓存取ID,然后再查数据库
mongodb ,只要内存够
这个是出于什么需求?如果是为了做某种统计分析的话,可以将统计指标的结果存到一个表里,新数据进来,流处理,更新统计表。之后业务接口去查统计表的结果就行。
我的第一反应也是这个。
1、你得具体场景,是产品用户游览记录,还是啥记录?有没有大数据的记录 2、查询这个记录结果是统计每个产品,还是就是单纯看记录,一页十条,分页的这种
记录表插入后,去 Redis 更新缓存:ZSET member 存产品 id,score 存当前时间 查询 24h 浏览的产品直接查这个 zset 得到产品 id 定期根据 score 删除过期浏览记录
建议按天分表,直接从db查,缓存要解决什么问题?见X-Y Problem X-Y Problem | 酷 壳 - CoolShell 非要放缓存,10Wid丢有序集合zset,数据详情按照id拼key作缓存,zset获取到分页的数据范围的idList,idList丢去缓存一次性查询出那一页的详情