MySQL-共享锁函数

Author Avatar
丁起男 12月 24,2020
  • 在其它设备中阅读本文章

MySQL-共享锁函数

get_lock(str,timeout)

作用:获取共享锁

str是应用程序通信双方协商好的一个字符串

timeout是等待该锁的超时时间

如果能在timeout时间内获取到锁,则返回1;如果在timeout时间后仍然获取不到锁,则返回0;如果发生错误,则返回null

如果客户端同时通过get_lock获取锁,则他们的先后顺序不可知

释放锁的方式

  • 执行release_lock()
  • 执行新的get_lock()
  • mysql连接释放

release_lock(str)

作用:释放名为str的共享锁

如果锁被成功释放,返回1;如果这个进程没有占有该锁,则返回0;如果这个名为str的锁不存在,则返回null

is_used_lock(str)

作用:检查名为str的锁是否在使用(被锁)

如果被锁,则返回拥有该锁的客户端标识,否则返回null

使用CONNECTION_ID()函数获取当前客户端标识

is_free_lock(str)

作用:检查名为str的锁是否可用(没有被锁)

如果可用则返回1;如果在使用则返回0;如果有错误则返回null