欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php脚本定时更新商品列表

程序员文章站 2022-04-21 16:58:16
...

这篇文章主要介绍的内容是关于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 列表 商品