php file_put_contents锁定

php 的 file_put_contents是比较慢的io操作,高并发下可能产生数据覆盖。

file_put_contents($file, $content, FILE_APPEND|LOCK_EX)

当第三个参数,flag指定为 LOCK_EX 时表示独占,如果使用 FILE_APPEND则可以追加(默认是覆盖)。

不过无法难以保证读取锁定,仍需要数据库,php文件系统并不可靠,无法满足高并发下的同步需求。

还有另一种办法,当单用户并发高时,把文件中的值,存入session,利用session的安全机制,实现数据的同步。

多用户时,使用$_GLOBAL变量或者$_FILES变量,或者static变量等缓存数据,以实现数据的同步。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注