trafficserver (五)目录正则刷新缓存

这是什么?

为保证在服务器岩机时有一份缓存可用,在正常情况下能及时刷新缓存内容不至于太旧 为能通过正则表达式来批量清除缓存内容,同时不对整个缓存进行遍历以至于托跨机器 ,关于ats自带的regex_delete测试中发现效率远远不行。

思路是怎样的?

根据用户访问情况来进行缓存更新,如我设置缓存1小时失效,我发现age值超过300(也就是 内容生成超过5分钟)就手动更新缓存,更新时进行后端的状态检查。 对于一些静态资源由于内容基本不会变化,所以跳过自动更新 对于需要人工刷新的页面(如首页), 更新时用缓存内容回写,保证一直是旧内容 目录刷新功能类似,每次取有效期内的规则列表,然后拿用户访问的URL匹配,如果链接 是在生效期前生成的且能匹配上正则更新缓存。

需要如何配置?

除基本配置外,主要是ats的日志格式有要求,参考文件logs_xml.config crontab定时每分钟执行tailAtsLog.sh文件来分析ats日志 要清理的目录可以通过数据库读取,这里为方便解释主业务硬编码到了文件libRegex.php

其它

目录刷新来自于群里人的点拨,最开始是由一个regex_revalidate的插件实现,文章 http://www.ywjt.org/index.php/archives/883给出了具体如何使用。之所以没有采用是 由于本身业务已有监控日志刷新服务,不使用插件可保证业务独立性,可以后台动态添加 刷新目录等原因, 可能唯一问题是第一个访问人访问到的还是旧的,触发刷新后其他人才会 看到新内容,不过这个延迟还是可以接受的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值