Cache 文件是否存在的查询
当我们使用 Squid 是不是常常会有个问题,就是怎么查文件是否存在。大家是怎么查的。。。我想大多都是使用 wget 来查。wget -S 如果显示 HIT 就是文件从 Cache 中取的,不是从源网站取的。但这个过程非常慢,因为如果是大量的文件,比如 100W 的文件要查怎么办。。。都下载一次?
有人就讲了,我不是可以发 Head 的头来查吗?比如使用 Curl 来查。这样没有下载文件的过程,这样多快啊。。。,只要发送一个 head 的头就能确认文件是否存在
但这时有一个问题,那我们在看看有什么样的问题。
1. 当文件不存在时首次查询 Squid
很好,正常,文件不存在时就显示 MISS ,这是对的
#curl -I http://www.php-oa.com/data/emagazine/mode/mode_10.exe ........ X-Cache: MISS from BM_SC.php-oa.com
2. 上次查询后在次查询 Squid
嗯,很好,不存在。。。。我们在查一次,使用上面的命令,就发现,嗯,文件存在了,由 MISS 变成了 HIT 。。。。
#curl -I http://www.php-oa.com/data/emagazine/mode/mode_10.exe ......... X-Cache: HIT from BM_SC.php-oa.com
3. 使用 Wget 确认查询
好了,我们现在在使用 wget -S 来在测试一下。。。
$wget -S http://www.php-oa.com/data/emagazine/mode/mode_10.exe ........ X-Cache: MISS from BM_SC.php-oa.com
怎么回事,明明查了有,怎么是 MISS .其实这是对的,因为 curl 加 I 的参数,只发了一个 head ,Squid 会给这个 head 来做 cache ,但对对象不会下载。所以第一次查的状态是对的。以后都会是错的响应。
解决方法
好了,一个高级又快速的解决方法 ,我们还记的 ICP 吗。。。是父子模式时用来处理查询 Cache 是否存在的方法 。。。所以我们只要实现一个 ICP 协议的查询就行了。这样就能大量查询,状态还会很准。。。
还好,有人写好了现成的 ICP 协议的客户端。下载地址: http://icp.ircache.net/tools/udp-banger.pl
使用很简单,我们先准备一个要查询的列表,比如,example.txt
#cat example.tst |perl udp-banger.pl xxx.xxx.xxx.x 3130
这样在标准输出,就会输出相关的内容
UDP_MISS http://www.php-oa.com/%C5%F9%F6%A8MIT%28%B5%DA01%BC%AF%29.mp4 UDP_HIT http://www.php-oa.com/%C5%F9%F6%A8MIT%28%B5%DA01%BC%AF%29.mp4 UDP_MISS http://www.php-oa.com/%C5%F9%F6%A8MIT%28%B5%DA01%BC%AF%29.mp4
当然,这个还得 Squid 支持
icp_port 3130 # 端口 icp_hit_stale off #过期了,但存在是否还回答为 HIT icp_access allow all # 那些地址可以查询 #icp_access deny all
建议继续学习:
- 使用Squid缓存视频 (阅读:9162)
- 海量小文件存储 (阅读:7540)
- 其实,文件也可以truncate (阅读:7382)
- Buffer和cache的区别是什么? (阅读:6822)
- 谈冷热数据 (阅读:5731)
- 系统架构的一些思考 (阅读:5590)
- Linux操作系统中内存buffer和cache的区别 (阅读:5305)
- 学习:一个并发的Cache (阅读:4967)
- 关于Linux的文件系统cache (阅读:4773)
- Twitter架构图(cache篇) (阅读:4719)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:扶凯 来源: 扶凯
- 标签: Cache Squid 文件
- 发布时间:2010-11-17 19:16:59
- [68] Go Reflect 性能
- [68] 如何拿下简短的域名
- [67] Oracle MTS模式下 进程地址与会话信
- [62] IOS安全–浅谈关于IOS加固的几种方法
- [61] 图书馆的世界纪录
- [60] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [48] 读书笔记-壹百度:百度十年千倍的29条法则