php数据锁 php数据存储

php除了文件锁

php除了文件锁,还有共享锁、排它锁。共享锁和排他锁主要是为了解决并发导致的问题。在PHP中,共享锁和排它锁主要用在两个地方,一个是数据库,一个是文件。

成都地区优秀IDC服务器托管提供商(创新互联建站).为客户提供专业的遂宁联通机房,四川各地服务器托管,遂宁联通机房、多线服务器托管.托管咨询专线:18982081108

PHP简单分布式锁-PHP中的锁

对于PHP的锁,其实并没有什么太多的概念。抛弃一些第三方的依赖,看看有哪些可用的选择。

目前可以想到的就这么多,在该项目中我们采用文件锁,因为其它的两个需要装扩展。文件锁的逻辑就非常简单了

从网上摘抄了一个例子,使用的 eAccelerator 和 文件锁两种 传送门

使用方法

php中mysql加锁问题

有表锁,行锁,页锁

页级:引擎 BDB。

表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行

行级:引擎 INNODB , 单独的一行记录加锁

1) 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

2) 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

3) 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

一般不在PHP中使用锁操作,因为如果锁了库,如果遇到错误没有及时的解锁,就会导致不能访问数据的情况。

可以使用MYSQL的事务,就是定义事务开始,然后有几个语句要执行,然后根据情况,如果有一个语句没有执行成功,可以回滚(取消这几个语句的执行),从而达到几个语句都执行成功或者都不执行的效果,在强事务型的应用中一般使用这个方式

你可以去后盾人平台看看,里面的东西不错

php 如何锁表

在进行数据表检查或修补时,可以先将数据表锁定,可确保数据表的安全:

mysqlLOCK TABLE tbl_name READ;

mysqlFLUSH TABLES;

将数据表锁定后再进行检查或修补的工作。完成后再解除锁定:

mys()qlUNLOCK TABLES;

//LOCK TABLE tbl_name READ表示要锁定成只读状态,在这个状态下用户只能读取数据表,不能写入。

LOCK TABLE tbl_name WRITE则是更严格的锁定,用户不能读取也不能写入。


文章名称:php数据锁 php数据存储
本文路径:http://scyanting.com/article/ddgdsih.html