이 글에서는 정기적으로 제품 목록을 업데이트하는 PHP 스크립트를 주로 소개합니다. 이제는 모든 사람과 공유합니다.
e의 동시성 방지 기능을 향상시키기 위해. -커머스 프로젝트의 경우 상품 목록을 업데이트해야 합니다. 다음은 캐시를 업데이트하는 데 사용되는 스크립트입니다.
//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);
어필 스크립트는 실제 적용 중에 잠길 필요가 있습니다. , 스크립트가 완료되지 않고 다음에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!