您当前的位置: 首页 >  php

壹小俊

暂无认证

  • 2浏览

    0关注

    885博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

用php脚本,你如何定时更新商品列表

壹小俊 发布时间:2020-04-08 10:11:44 ,浏览量:2

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

//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脚本:

* * * * *
关注
打赏
1664335782
查看更多评论
立即登录/注册

微信扫码登录

0.0584s