Squid web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录,每一个目录下又建立多个目录,然后才在最里层的目录中存放缓存文件(object)。squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。
对于类似http://you.video.sina.com.cn/index.html之类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除: squidclient -m PURGE -p 80http://you.video.sina.com.cn/index.html 而对于带有参数的网页,例如新浪播客的Flash播放器http://vhead.blog.sina.com.cn/pl ... &uid=1278987704,因“?”后面的参数不同,导致URL也不同,squid会生成多个缓存文件,哈希分散存放在不同的目录。如果修改了这个outer_player.swf 文件,要更新squid缓存就要去清除不同目录下及内存中的很多个缓存文件,十分麻烦,于是我编写了一个Linux下的shell脚本,去完成这件麻烦的事: 脚本文件名:clear_squid_cache.sh
设置: squidcache_path= 表示squid缓存目录的路径 squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient 用法: 1、清除所有Flash缓存(扩展名.swf): ./clear_squid_cache.sh swf 2、清除URL中包含sina.com.cn的所有缓存: ./clear_squid_cache.sh sina.com.cn 3、清除文件名为zhangyan.jpg的所有缓存: ./clear_squid_cache.sh zhangyan.jpg 效率: 经测试,在DELL 2950上清除26000个缓存文件用时2分钟左右。平均每秒可清除缓存文件177个。 |
|