1
Symfony和其他框架使用缓存系统,他们只是把文件放在某个地方。但是,如果它的网站使用率很高,不会是碰撞?两个file_put_contents在同一时间?如何使它更安全?带有file_get_contents,file_put_contents的PHP缓存系统:线程安全吗?
Symfony和其他框架使用缓存系统,他们只是把文件放在某个地方。但是,如果它的网站使用率很高,不会是碰撞?两个file_put_contents在同一时间?如何使它更安全?带有file_get_contents,file_put_contents的PHP缓存系统:线程安全吗?
您可以使用flock在给定文件上创建一个锁。这可以帮助你在同一个文件上没有两个进程写入。从文档
实施例:
<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (flock($fp, LOCK_EX)) { // acquire an exclusive lock
ftruncate($fp, 0); // truncate file
fwrite($fp, "Write something here\n");
fflush($fp); // flush output before releasing the lock
flock($fp, LOCK_UN); // release the lock
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
?>