草庐IT

Redis分布式锁加锁案例

1.组件依赖首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码:dependency>groupId>redis.clientsgroupId>artifactId>jedisartifactId>version>2.9.0version>dependency>2.加锁代码先展示代码,再带大家慢慢解释为什么这样实现://java项目fhadmin.cnpublicclassRedisTool{privatestaticfinalStringLOCK_SUCCESS="OK";privatestaticfinalStringSET_IF_NOT_EXIST="NX

Redis分布式锁加锁案例

1.组件依赖首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码:dependency>groupId>redis.clientsgroupId>artifactId>jedisartifactId>version>2.9.0version>dependency>2.加锁代码先展示代码,再带大家慢慢解释为什么这样实现://java项目fhadmin.cnpublicclassRedisTool{privatestaticfinalStringLOCK_SUCCESS="OK";privatestaticfinalStringSET_IF_NOT_EXIST="NX

记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理

昨晚我正在床上睡得着着的,突然来了一条短信。啥,线上MySQL死锁了,我赶紧登录线上系统,查看业务日志。能清楚看到是这条insert语句发生了死锁。MySQL如果检测到两个事务发生了死锁,会回滚其中一个事务,让另一个事务执行成功。很明显,我们这条insert语句被回滚了。insertintouser(id,name,age)values(6,'张三',6);但是我们怎么排查这个问题呢?到底跟哪条SQL产生了死锁?好在MySQL记录了最近一次的死锁日志,可以用命令行工具查看:showengineinnodbstatus;在死锁日志中,可以清楚地看到这两条insert语句产生了死锁,最终事务2被会

记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理

昨晚我正在床上睡得着着的,突然来了一条短信。啥,线上MySQL死锁了,我赶紧登录线上系统,查看业务日志。能清楚看到是这条insert语句发生了死锁。MySQL如果检测到两个事务发生了死锁,会回滚其中一个事务,让另一个事务执行成功。很明显,我们这条insert语句被回滚了。insertintouser(id,name,age)values(6,'张三',6);但是我们怎么排查这个问题呢?到底跟哪条SQL产生了死锁?好在MySQL记录了最近一次的死锁日志,可以用命令行工具查看:showengineinnodbstatus;在死锁日志中,可以清楚地看到这两条insert语句产生了死锁,最终事务2被会

关于加锁:防止php脚本同时运行两次

Preventphpscriptfromrunningsimultaneouslyandtwice我一直在寻找一种方法来防止同时运行php脚本。所以我找到了一种方法(在这个网站上)来防止这种情况。这是我带来的(测试文件)。在stackoverflow上找到解决方案的链接:如何防止PHP脚本多次运行?test.php1234567891011121314151617181920echo"started:".microtime()."";$lock=$_SERVER['DOCUMENT_ROOT'].'/tmp/test.lock';$f=fopen($lock,'x');if($f===fals

关于加锁:防止php脚本同时运行两次

Preventphpscriptfromrunningsimultaneouslyandtwice我一直在寻找一种方法来防止同时运行php脚本。所以我找到了一种方法(在这个网站上)来防止这种情况。这是我带来的(测试文件)。在stackoverflow上找到解决方案的链接:如何防止PHP脚本多次运行?test.php1234567891011121314151617181920echo"started:".microtime()."";$lock=$_SERVER['DOCUMENT_ROOT'].'/tmp/test.lock';$f=fopen($lock,'x');if($f===fals