【发布时间】:2016-06-29 05:23:34
【问题描述】:
我正在使用 Laravel 制作需要扩展图像上传和图像存储的项目。请告诉我存储图像的最佳方式是什么,以便图像可以更快地加载。
【问题讨论】:
我正在使用 Laravel 制作需要扩展图像上传和图像存储的项目。请告诉我存储图像的最佳方式是什么,以便图像可以更快地加载。
【问题讨论】:
存储和加载图像的最快方法是在主内存中。然而,这可能是不切实际的,因为图像是大文件,主内存是有限的,并且在重新启动之间不是持久的。您应该将它们存储在磁盘上。
我强烈建议不要将图像作为 blob 存储在数据库中。
【讨论】:
不要害怕将图像放在您的文件系统上。将其直接放入数据库是一种不好的做法。它会伤害数据库服务器。而是将图像的路径存储到数据库中。
如果您真的想提高速度,可以缓存它,或者只使用 CDN。另外,请注意,CDN 在某些地方可能不会真正加快加载速度。
如果 CDN 服务器仅在美国(例如,只是为了获得想法)并且您在美国很好,它会很快。否则会很慢。
只有位置也会影响速度,服务器的磁盘速度也会影响速度。如果您的系统在 SSD 上,那也会很快。
【讨论】:
我要做的是将它们存储在磁盘中,并在有人请求它们时使用 Redis 之类的内存数据库将它们缓存在内存中,并在清除每次更新的内存之前给数据库中的图像一个非常小的生命周期再次请求相同的图像(在 redis 中很容易完成),因此最常看到的图像总是被缓存并快速到达用户,但最少使用的图像不使用额外的内存空间。
如果页面中有一些长滚动,您也可以逐渐加载它们,以便初始反馈更快一些。
【讨论】: