我应该缓存全部内容吗?

4
我距离完成我的应用程序非常近了。目前我正在使用 Laravel 的文件缓存,以便在每次保存、更新或删除记录时缓存基本上所有保存在我的表中的数据。这些表在未来的三年内可能会有超过 200 万条记录。我想知道在文件缓存所有记录方面是否需要注意任何问题。有人预见到在长时间内缓存数十万条记录是否会出现问题吗?
目前,我的缓存系统工作方式是当我保存新记录、删除或更新记录时,它会重置有关表/记录的缓存。我的每个表和大多数记录都有自己的缓存。有人预见到在具有非常大的数据库的情况下,这种设计会带来任何问题吗?
问候, Darren

你是如何存储缓存的呢?我的意思是,为每个用户存储缓存还是整个表格,然后根据要求添加条件? - Digvijay
1个回答

5
您有数百万条数据,这会在每秒钟的高点击率应用程序中引起一些担忧。在这种情况下,更多的点击意味着增加磁盘IO。磁盘IO中的任何瓶颈都应该影响应用程序的整体性能。
从我的个人经验来看,最好的方法是决定哪些数据应该被缓存,哪些不应该被缓存,以及应该使用哪些层和架构的缓存。例如,您可能不想缓存任何非常动态的数据。例如,用户购物车,余额,浏览次数等。由于这些数据始终在变化,将它们缓存通常会导致资源消耗几乎加倍,而不是在实际场景中增加实际吞吐量。如果一组数据很少被获取,则可能根本不需要缓存。
另一方面,如果您的某些数据部分具有非常高的点击率,例如主页元素,热门帖子,畅销产品等,则应使用快速且高可用性的缓存机制(如对象存储)来缓存这些数据。这样,在成千上万个并发点击数据的情况下,可以满足高需求,而不会影响磁盘IO或数据库性能。
简而言之,应用程序数据的不同部分可能需要不同的缓存方法。

先生,您好。很抱歉晚了。您的意思是说,非常动态(经常更改)的信息不应该被缓存,而应该从数据库中访问,而不经常更改的信息应该被缓存,对吗? - Darren Cooper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接