Documentation ¶
Index ¶
Constants ¶
View Source
const UnlockScript = `
if redis.call("GET", KEYS[1]) == ARGV[1] then
return redis.call("DEL", KEYS[1])
else
return 0
end
`
UnlockScript 释放锁脚本
Variables ¶
Functions ¶
Types ¶
type Locker ¶
type Locker interface { // Lock 分布式自旋锁 // resource 资源标识,相同的资源标识会互斥 // ttl 生存时间 (秒) Lock(ctx context.Context, resource string, ttl uint64) (Releaser, error) // TryLock 尝试获取锁 // resource 资源标识,相同的资源标识会互斥 // ttl 生存时间 (秒) TryLock(resource string, ttl uint64) (Releaser, bool, error) // LockFunc 分布式自旋锁执行fn // resource 资源标识,相同的资源标识会互斥 // ttl 生存时间 (秒) // f 返回interface{} 的函数 // 在获取锁失败或超时的情况下,fn不会被执行 LockFunc(ctx context.Context, ttl uint64, fn func() any) (any, error) }
Click to show internal directories.
Click to hide internal directories.