1
我在我的CakePHP應用程序中實現了一個保守鎖定,在不同的控制器之間共享。基本上,當一個頁面被訪問時,一個記錄被寫入一個表中,表明該模型的那個條目正在被該用戶編輯,並帶有時間戳。每隔30秒,通過一次ajax調用,該記錄的時間戳就會更新,表示頁面仍在使用中。如果有人試圖進入該頁面,則訪問被拒絕。如果頁面被留下,'鎖'在30秒結束時到期。CakePHP和悲觀鎖定:數據庫vs緩存
總體而言,查詢是:
- 3時,頁面加載(清除所有超過1小時(刪除)舊的鎖,檢查頁面是不是已經在使用(選擇),如果它不是,創建鎖(INSERT));
- 2更新鎖時(檢查頁面是否已被鎖定(SELECT);如果不是,則更新鎖的時間戳(UPDATE));
我不知道我是否應該使用緩存系統,因爲這不是數據的永久存儲(這顯然應該使用數據庫),但僅僅只是短暫的。它可能比數據庫更快嗎? (但我不確定,因爲我的緩存只是文件緩存)。
不確定我是否理解你的問題,在你的具體情況下使用cakephp緩存是個好主意? – 2012-02-07 23:40:53
那麼,我必須存儲30秒,正在編輯一個頁面。我想知道,如果使用數據庫,那麼比使用簡單的緩存更「資源昂貴」。 – entropid 2012-02-08 00:35:55
根據用戶數量是否有臨時表,但是因爲我認爲你不必編輯緩存是合適的。 – 2012-02-08 11:20:39