2011-09-21 165 views
0

我有一個網站和我的網站的一部分需要讀/寫在服務器上的純文本文件。大多數情況下,我們有50到100個併發在線用戶,他們在我們網站上的行爲導致讀/寫某些文件,其中某些文件是其他頁面的臨時佔位符。併發讀取和寫入文件

所以我想知道併發的讀/寫衝突,以及如果發生這種情況,避免這種情況的最佳做法是什麼。我的服務器如何管理這些請求?

+0

我使用Apache/PHP。 – silvercover

+0

在這種情況下使用某些數據庫的最佳實踐 – user973254

回答

1

比webserver更重要的是底層操作系統和文件系統。

您可以(在支持的情況下)使用flock()獲得PHP中文件句柄的排他鎖,導致排他鎖的所有其他嘗試在其後面阻止和堆棧。

1

* nix系統中的一個選項是創建臨時文件,寫入臨時文件,fsync(),然後重命名爲目標文件名。當然,這隻適用於一個作家,或者如果你只想要最新的作家。