這篇文章主要介紹的內容是關於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中文網其他相關文章!