分布式系统架构系列讲解 - 总目录
一,Lua脚本
Redisson这个框架重度依赖了Lua
脚本和Netty
,用Lua
脚本来保证加锁和解锁的原子操作,用Netty
来保证高性能。
1,加锁Lua脚本
脚本入参
参数 | 示例值 | 含义 |
---|---|---|
KEY个数 | 1 | KEY个数 |
KEYS[1] | my_first_lock_name | 锁名 |
ARGV[1] | 60000 | 持有锁的有效时间:毫秒 |
ARGV[2] | 58c62432-bb74-4d14-8a00-9908cc8b828f:1 | 唯一标识:获取锁时set的唯一值,实现上为redisson客户端ID(UUID)+线程ID |
脚本内容
// 若锁不存在:则新