[发明专利]Squid按照目录格式清除缓存文件的方法有效
申请号: | 201611127092.5 | 申请日: | 2016-12-09 |
公开(公告)号: | CN106777033B | 公开(公告)日: | 2019-06-25 |
发明(设计)人: | 于馨桐 | 申请(专利权)人: | 北京齐尔布莱特科技有限公司 |
主分类号: | G06F16/17 | 分类号: | G06F16/17 |
代理公司: | 北京市盛峰律师事务所 11337 | 代理人: | 于国富 |
地址: | 100080 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | squid 按照 目录 格式 清除 缓存 文件 方法 | ||
本发明公开了一种Squid按照目录格式清除缓存文件的方法,所述方法:将redis结合至squid:当缓存未命中时,将客户端访问的URL转换成域名‑目录结构的key‑value对应关系,存储至redis;当收到清除任意一组缓存的指令时,squid首先在redis中抓取符合条件的一组URL,逐个清除后,再清除存储在redis中的与符合条件的一组URL相关存储信息。对于squid清除缓存的场景,本发明使用redis这样的高性能内存服务器,不仅性能较高,而且可以通过配置提高数据安全性。清除目录缓存时,本发明不需要停机清除,用户访问无感知,操作人员基本无学习成本。
技术领域
本发明涉及计算机软件领域,尤其涉及一种Squid按照目录格式清除缓存文件的方法。
背景技术
Squid是一个流行的开源软件,有着广泛的用途,经常被用来做缓存服务器。当用户要访问web,下载数据时,用户机向Squid发出一个申请,Squid连接所申请网站并请求该数据,接着把数据传递给用户的同时保留一个备份。当其他用户申请同样数据时,Squid把保存的备份立刻传给用户,节省后端请求环节,响应更快,用户体验更好。
但当用户抱怨总接收过时的数据(缓存),或Squid某个缓存需要更新修改时,就需要通过清除缓存来解决。
不过当想清除同一个目录结构下的缓存时,因为很多原因,Squid并没有提供一个好的机制。比如说Squid必须遍历所有缓存对象,执行线性搜索,这很耗费CPU,并且耗时较长。
目前比较常见的解决方式有两种。一种是从access.log获取URI列表;另一种是删除缓存索引文件。这两种方式均有一定限制性和局限性。第一种方式通过抓取squid的access.log来获取URI列表,将URI列表用于squidclient产生PURGE请求,这种方法可以提高清除缓存的准确性,但,效率较低,重复性较高。第二种方式删除swap.state文件,这种方式需要停止squid服务,并且删除并无指向性。
本专利将提供一种效率较高,维护成本低,又不用停机,热删除一组目录缓存的方法。
发明内容
本发明的目的在于提供一种Squid按照目录格式清除缓存文件的方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明所述Squid按照目录格式清除缓存文件的方法,所述方法包括:
S1,将redis结合至squid:当缓存未命中时,将客户端访问的URL转换成域名-目录结构的key-value对应关系,存储至redis;
S2,当收到清除任意一组缓存的指令时,squid首先在redis中抓取符合条件的一组URL,逐个清除后,再清除存储在redis中的与符合条件的一组URL相关存储信息。
优选地,步骤S1,具体按照下述步骤实现:
S11,作为服务端的squid接收到客户端发出的访问域名,结合squid的访问控制列表,判断客户端发出的访问域名是否符合squid的配置规则,如果是,则允许访问,进入S12;如果否,则不允许访问;
S12,从squid coss文件系统中读取到访问域名所对应的缓存数据;
S13,squid从源服务器中读取访问域名所对应的目标数据,进入S14,同时,将所述目标数据写入squid coss文件系统保留备份;
S14,将缓存数据反馈到客户端。
更优选地,步骤S13,当目标数据写入squid coss文件系统中做保留备份时,squid将客户端的URL拆分成域名-目录结构的key-value结构,存储至redis。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京齐尔布莱特科技有限公司,未经北京齐尔布莱特科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611127092.5/2.html,转载请声明来源钻瓜专利网。