重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“怎么用php脚本实现定时更新商品列表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
我们是于2013年成立的成都网站建设公司,提供网站建设,电商网站设计开发,成都外贸网站制作,响应式网页设计,微信小程序、等服务。为客户创造有价值的品牌营销体验,让互联网提升企业的竞争力!
电商项目中为了提高抗并发能力,需要对商品列表做缓存,以下是更新缓存用的脚本:
//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脚本实现定时更新商品列表”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!