刚刷 V 站,看到一个帖子,https://www.v2ex.com/t/374988#r_4523626, 自我一句开玩笑的回复,让我突然意识到,也许真的所有缓存都该叫做薛定谔的缓存。结合我的项目谈谈
这几天开发一个图片项目,需要将图片裁剪成不同的分辨率并采用伪静态的形式储存,比如 www。abc。com/little-cat.jpg ,用户要访问其 800×600 分辨率的图片时,伪静态地址是 www。abc。com/little-cat-800x600.jpg ,这期间服务器先查找是否存在 little-cat-800x600.jpg 这张图片,如果存在,则静态输出,如果不存在,交给 imagemagick 裁剪后,生成 little-cat-800x600.jpg ,再静态输出,大部分图片项目都是这样的,很好理解,如果每次都用 php 裁剪然后动态输出,服务器开销非常大,只能生成缓存。
现在我问你,我的服务器上有一张 little-dog.jpg 的原始大图,你能不能告诉我是否确定上面有 little-dog-800x600.jpg ,你只能通过浏览器访问后,根据加载的时间长短判断 little-dog-800x600.jpg 原先是否存在于服务器上,因为很有可能,Googlebot 也访问过这个伪静态地址,bingbot 也可能访问了,baiduBot 也可能访问了,你没法判断 little-dog-800x600.jpg 在你访问之前已经存在于服务器上
就像薛定谔的猫一样,你访问这个伪静态地址时,整个硬盘进入了两个平行宇宙,一个宇宙中,该硬盘还是跟原来一模一样的容量,另一个宇宙中,该硬盘已经被 little-dog-800x600.jpg 占用了一部分空间
所以这也就解释了至于为啥会有平行宇宙,我的观点,类比于服务器,每次 phpmagick 动态裁剪实在太消耗服务器,我们这个世界也在一个服务器运维当中,说人话:我们在“缸中之脑”中,不懂缸中之脑请自行渣度
我编不下去了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.