想用redis进行记录文章浏览量,一共定义了两个key,第一个key是当前用户ip,如果当前用户五分钟内重复访问只计算一次浏览量,第二个key是文章ip,value是用户浏览量,之后设置定时任务异步去更新缓存到数据库,
但是定时任务更新的时候会删除大量的缓存,那就有可能造成缓存雪崩,如果更新之后不删除key,那redis缓存满了就会淘汰数据,由于为了页面的浏览量实时显示,浏览量是从redis中取得,在redis缓存的浏览量定时更新删除key之后由于查询不到会报错,如果从数据库查询数据会不及时,我需要怎么做才能让这些变得合理一些。
希望可以得到一个思路,谢谢
这种业务模式建议用flink来做短时间内的统计,比如分钟级,然后把累计结果更新到redis,以供前端查询使用。
至于更新数据库,建议走MQ,移步慢慢更新,控制下并发量,以免对数据库造成大的影响