shell实现定期清理网站缓存数据

如果第一个脚本不行,可以尝试第二个脚本方案!

网站采用了一些方法进行加速(redis\cdn),这样就降低用户访问后端mysql的压力、以及前端速度不太好的问题,对用户请求到的所有页面进行了缓存,既然数据缓存了,解决用户看到的页面是否为最新页面就提上日程,下面这个脚本就诞生了。

#!/bin/bash
# Author:Byrd
# Version:0.1
# Site:www.111cn.net
# Contact:root#111cn.net
# define category
for category in basic code database environment error mobile other project remark route service switch system
do
    for ((i=2;i<15;i++))
    do
        # Define return value
        RETURN=`curl -o /dev/null -s -k -w "%{http_code}" http://www.111cn.net /$category/page/$i/?r=y`
        if [ $RETURN -eq 200 ]; then
            # if return value 200,then flush page and category.
            curl -o /dev/null -s -k -w "%{http_code}" http://www.111cn.net /$category/page/$i/?r=y >/dev/null 2>&1
            curl -o /dev/null -s -k -w "%{http_code}" http://www.111cn.net /$category/?r=y >/dev/null 2>&1
        else
            # if return value not 200,then flush category first page and site page.break
            curl -o /dev/null -s -k -w "%{http_code}" http://www.111cn.net /$category/?r=y >/dev/null 2>&1
            curl -o /dev/null -s -k -w "%{http_code}" http://www.111cn.net /?r=y >/dev/null 2>&1
            break
        fi
    done
done

将脚本加入定时任务,由于网站不定期更新,更新不频繁,因此每天执行任务即可。

[root@site scripts]# echo '#flush cache' >>/var/spool/cron/root    #注释                                               
[root@site scripts]# echo '00 2 * * * /bin/sh /byrd/scripts/flush_site.sh >/dev/null 2>&1' >>/var/spool/cron/root    #两点执行计划任务                  
[root@site scripts]# crontab -l
#flush cache
00 2 * * * /bin/sh /byrd/scripts/flush_site.sh >/dev/null 2>&1

另外一个思路:

1:redis的主要目的是为了缓存数据;
2:把redis缓存数据清空,然后重新启动redis即可完成;
3:因为个人网站一般凌晨4:00左右访问量最低,且更新周期不快;
这个脚本一样的功效,效果不如上面的脚本,上面的额脚本缺点是没有做文章的判断。

[root@www scripts]# cat clean_redis.sh
#!/bin/bash
# Author:Byrd
# Version:0.1
# Site:www.111cn.net
# Contact:root#111cn.net
CDATA=`ls -l /usr/local/redis/cache/dump.rdb | awk '{print $5}'`    #取得硬盘缓存数据大小
REDIS_PID=`ps aux | grep redis | grep -v grep | awk '{print $2}'`    #取得redis进程id
if [ $CDATA -gt 3145728 ]; then
    >/usr/local/redis/cache/dump.rdb
    #kill ${REDIS_PID}
    sleep 3
    #/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
else
    exit 1
fi

然后定时任务,每周或者每天执行一次即可!

时间: 2024-09-20 05:31:03

shell实现定期清理网站缓存数据的相关文章

linux中利用shell定时清理网站缓存数据脚本

经过测试,脚本不成立!! 网站采用了一些方法进行加速(redis\cdn),这样就降低用户访问后端mysql的压力.以及前端速度不太好的问题,对用户请求到的所有页面进行了缓存,既然数据缓存了,解决用户看到的页面是否为最新页面就提上日程,下面这个脚本就诞生了.嘿嘿... Shell #!/bin/bash # Author:Byrd # Version:0.1 # Contact:root#t4x.org # define category for category in basic code d

网站缓存数据实时更新的实现

一个网站的实现不可避免的需要处理大量的内存数据,这大多都出于网站性能的考虑和解决I/O瓶颈问题,如JavaEye网站的首页排名数据和博客频道的排名等数据,都进行了缓存处理,而且并非是实时的,特别是首页的排名数据几乎是一天才会更新一次的,同样,QQ等门户网站也存在大量静态化内存数据,所以一个网站缓存的处理是至关重要的,并且好的架构需要做到代码无侵入性,也就是说内存的更新,日志的记录等操作都应该是"切面"处理,在我后来的网站开发中,我一般都会定义一个缓存类,如下: Java代码 publi

《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一2.3 了解网站分析数据的准确性

2.3 了解网站分析数据的准确性 流量的秘密: Google Analytics网站分析与优化技巧(第3版) 网站分析对于衡量网站的表现相当重要.但是,只有在避免一些常见的数据收集错误(特别是对不同来源的数据进行比较时)的前提下,这些网站分析数据才是准确可靠的. 遗憾的是,相当多的企业只看到了网站分析报告的表面价值.毕竟,这些数据得来不易.但是,现实总是残酷的,网站分析的数据从来都不是百分之百的准确,就算是估计误差范围也很困难. 那么,关键是什么呢? 尽管有各种各样的缺陷,但误差在每周或每个月的

Laravel使用Caching缓存数据减轻数据库查询压力的方法_php实例

本文实例讲述了Laravel使用Caching缓存数据减轻数据库查询压力的方法.分享给大家供大家参考,具体如下: 昨天想把自己博客的首页做一下缓存,达到类似于生成静态页缓存的效果,在群里问了大家怎么做缓存,都挺忙的没多少回复,我就自己去看了看文档,发现了Caching这个部分,其实之前也有印象,但是没具体接触过,顾名思义,就是缓存了,那肯定和我的需求有点联系,我就认真看了看,发现的确是太强大了,经过很简单的几个步骤,我就改装好了首页,用firebug测试了一下,提高了几十毫秒解析时间,当然了有人

《Hadoop实战手册》一1.2 使用Hadoop shell命令导入和导出数据到HDFS

1.2 使用Hadoop shell命令导入和导出数据到HDFS HDFS提供了许多shell命令来实现访问文件系统的功能,这些命令都是构建在HDFS FileSystem API之上的.Hadoop自带的shell脚本是通过命令行来执行所有操作的.这个脚本的名称叫做hadoop,通常安装在$HADOOP_BIN目录下,其中$HADOOP_BIN是Hadoopbin文件完整的安装目录,同时有必要将$HADOOP_BIN配置到$PATH环境变量中,这样所有的命令都可以通过hadoop fs -co

网站分析数据收集方式详解:Web日志JS标记和包嗅探器

中介交易 SEO诊断 淘宝客 云主机 技术大厅 回顾网站分析历史,从"您是第***位来访用户"到现在百家齐放的专业工具提供商,网站分析已经逐渐发展衍化成一门科学.但面对形态各异的分析数据,很多人仍然困惑于数据的来源,了解网站分析数据的收集原理,也许对你解决这些困惑有所帮助. 眼下网站分析数据主要有三种收集方式:Web日志.JavaScript标记和包嗅探器. 1. Web日志 下图是Web日志收集数据过程的示意图. 从上图可以看出网站分析数据的收集从网站访问者输入URL向网站服务器发出

在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据_自学过程

导言: 前面2章考察了在表现层和缓存层缓存数据.在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据.在第57章,我们探讨了创建一个单独的分开的缓存层.这2章都是采用"应激装载"(reactive loading)的模式来缓存数据.该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源--比如数据库,来获取数据,然后将其存储在内存里.该模式的优势在于执行起来很容易:而缺点之一在于应"请求"(requests

在Web服务器磁盘上缓存数据和HTML页面

有时候,有"许多"数据要在内存中缓存."许多"是相对而言的,它取决于能消耗多少内存.缓存项目的数量以及取回数据的频度.任何情况下,如果需要在内存中缓存大量的数据,请考虑以text或者XML文件格式在Web服务器硬盘上做缓存.当然,也可以混合使用硬盘缓存数据以及内存缓存数据,从而达到最佳缓存. 注意:当测试一个单一ASP页面的性能时,从磁盘取回数据不一定比从网络数据库中取回数据快,但是缓存减少了网络数据库的调用.在大规模调用时,这将明显地提高网络的吞吐能力.缓存一个费

网站用户数据的九大分析法则

网站用户数据的九大分析法则 不管你从事什么行业什么职业只有把握住数据才能把握住用户.对于网站也是一样,我们只有把握了网站的数据才能正确的分析出用户的行为习惯,喜爱和用户真正所需要的东西.话不多说,小编接着介绍如何正确分析网站用户数据. 一.用户的来源. 1.我们网站的用户都是从哪些地方过来的?这项数据可以从网站后台中分析得出. 2.我们网站的用户都是从哪些省份过来的?这项数据可以从网站后台的IP地址中分析得出. 二.网站访问次数. 1.网站每月访问次数.这项数据可以从网站后台中分析得出. 2.网