我在我的 CakePHP 应用程序中实现了一个悲观锁定,在不同的控制器之间共享。基本上,当一个页面被访问时,一条记录被写入一个表中,表明该模型的该条目正在由该用户编辑,并带有时间戳。每隔 30 秒,通过 ajax 调用,该记录的时间戳就会更新一次,表明该页面仍在使用中。如果有人试图进入该页面,访问将被拒绝。如果页面被留下,“锁”在这 30 秒结束时到期。
总的来说,查询是:
- 3 加载页面时(清除所有超过 1 小时的锁 (DELETE),检查页面是否尚未使用 (SELECT),如果没有,则创建锁 (INSERT));
- 2 当锁被更新时(检查页面是否已经被锁定(SELECT);如果不是,更新锁的时间戳(UPDATE));
我想知道我是否应该使用缓存系统,因为这不是数据的永久存储(显然应该使用数据库),而只是暂时的。它会比数据库更快吗?(但我不确定,因为我的缓存只是文件缓存)。