我是否应该缓存所有内容

时间:2020-07-12 03:27:39

标签: php laravel caching

我即将完成申请。我当前在laravel上使用文件缓存来基本上缓存每次保存,更新或删除记录时保存在表中的所有数据。这些表可能会在3年或更短的时间内出现超过200万条记录。我想知道在文件缓存所有记录时是否需要注意一些陷阱。有谁能预见到在一段时间内将数十万条记录进行文件缓存的问题?

当前,我的缓存系统的工作方式是当我保存新记录,删除记录或对其进行更新时,它会重置相关表/记录的缓存。我的每个表/大多数记录都有自己的缓存。有没有人预见到使用超大型数据库的这种设计会出现任何问题?

关于, 达伦

1 个答案:

答案 0 :(得分:1)

您拥有数百万个数据,这与应用程序每秒的点击率是否很高有关。在这种情况下,更多命中意味着增加磁盘IO。磁盘IO中的任何瓶颈都应影响应用程序的整体性能。

根据我的个人经验,最好的方法是决定应缓存哪些数据,不应该缓存哪些数据,应使用缓存的层和体系结构等。例如,您可能不想缓存任何非常高速的数据。动态。例如,用户购物车,余额,视图计数等。由于这些数据始终在变化,因此对它们进行缓存通常会导致(接近)使资源占用增加一倍,而不是在实际情况下增加实际吞吐量。如果很少获取一组数据,则可能根本不需要缓存。

另一方面,如果数据的某些部分具有很高的命中率,例如主页元素,热门帖子,畅销产品等,则应使用快速和高可用性缓存来缓存这些数据对象存储之类的机制。这样,在数千次并行命中这些数据的情况下,可以满足很高的需求,而不会影响磁盘IO或数据库性能。

简单地说,应用程序数据的不同部分可能需要缓存,也可能不需要不同的缓存方法。

相关问题