【问题标题】:Concurrency in reading and writing files文件读写并发
【发布时间】:2011-09-21 08:30:06
【问题描述】:

我有一个网站,我的部分网站需要在服务器上读取/写入纯文本文件。大多数时候,我们有 50 到 100 名并发在线用户,他们在我们网站上的操作导致读取/写入某些文件,其中该文件是其他页面的临时占位符。

所以我想了解并发读/写冲突,以及如果发生这种情况,避免这种情况的最佳做法是什么。我的服务器如何管理这些请求?

【问题讨论】:

  • 在这种情况下使用某些数据库的最佳实践

标签: file-io concurrency


【解决方案1】:

比网络服务器更重要的是底层操作系统和文件系统。

您可以(在支持的情况下)在 PHP 中使用 flock() 获得一个文件句柄的排他锁,从而导致所有其他排他锁尝试阻塞并在其后面堆叠。

【讨论】:

    【解决方案2】:

    *nix 系统中的一个选项是创建一个临时文件,写入它,fsync()ing 它,然后 rename()ing 到目标文件名。当然,这只适用于单个作者,或者如果您只想要最新的作者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多