PHP处理大规模并发,特别是恶意辅助工具发送恶意请求的情况下,这时候就需要用到锁机制。
常备恶意请求的接口一般都会操作db,如果db不支持事务或者db和PHP之间有第三方插件的话,很容易出现多个php接口返回成功的现象。
php有一种基于文件的锁机制,fblock,但是对于有很多web机的应用,php接口会负载均衡到所有的web机,只能做对同一台web机的锁机制,并且非常耗资源。
现在的锁机制就需要一个全局可以访问可写的变量。
此时有两种选择,数据库,memcached。
常备恶意请求的接口一般都会操作db,如果db不支持事务或者db和PHP之间有第三方插件的话,很容易出现多个php接口返回成功的现象。
php有一种基于文件的锁机制,fblock,但是对于有很多web机的应用,php接口会负载均衡到所有的web机,只能做对同一台web机的锁机制,并且非常耗资源。
现在的锁机制就需要一个全局可以访问可写的变量。
此时有两种选择,数据库,memcached。
为了减轻负担,使用memcached。
锁定方法: memcached并没有提供锁定某一个key的方法,可以通过其他方法来实现锁定。最常用的是用add方法。例如,我们要更新一个key,可以先王 memcached里面add一个叫l