首页 > 后端开发 > php教程 > php脚本定时更新商品列表

php脚本定时更新商品列表

不言
发布: 2023-03-24 16:46:01
原创
1407 人浏览过

这篇文章主要介绍的内容是关于php脚本定时更新商品列表,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

电商项目中为了提高抗并发能力,需要对商品列表做缓存,以下是更新缓存用的脚本:

//PRODUCTION_为缓存商品列表的临时key//PRODUCTION为缓存商品列表key
$con = mysqli_connect($db_config['host'],$db_config['user'],$db_config['passwd'],$db_config['database']);
$redis = new Redis();$redis->connect($redis_config['host']);$redis->del(PRODUCTION_);
$sql = "select * from production ORDER BY created_at";
$result = mysqli_query($con,$sql);
$artimages = [];while($row = mysqli_fetch_assoc($result)){    
$redis->lPush(PRODUCTION_,json_encode($row));
}/*
*之所以不直接更新到商品列表是因为当商品列表数据量比较大的时候,脚本执行的时间长,
*在del PRODUCTION之后 lPush PRODUCTION之前 用户访问网站的时候会出现读取不到
*商品列表的情况。
*先存入临时列表,再最后rename为实际被查询的key
*/$redis->rename(PRODUCTION_,PRODUCTION);
登录后复制

上诉脚本只是一个demo,实际应用时需要加锁,否则在脚本未执行完,又到了crontab下一次自动执行的时候,就会出错。

以下是crontab脚本:

* * * * * root  /usr/local/php/bin/php  /xxx/xxxx/xxx/production.php >/dev/null 2>&1

root  是执行脚本的用户
/usr/local/php/bin/php php脚本解释器,如果不写全路径的话会报错
>/dev/null 2>&1 忽略日志输出
登录后复制

相关推荐:

PHP脚本读取本地数据库数据

php脚本守护进程原理与实现代码

php脚本超时机制详解

                

以上是php脚本定时更新商品列表的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板