webman Redis::eval() 使用报错
public static function unlock($name = '', $token = '')
{
$args = ['redis-lock' . $name, $token];
return Redis::eval(self::getReleaseLuaScript(), $args, 1);
}
public static function getReleaseLuaScript(): string
{
return <<<LUA
if redis.call("get",KEYS[1]) == ARGV[1]
then
return redis.call("del",KEYS[1])
else
return 0
end
LUA;
}
咨询一下大佬,我想在webman中使用redis锁,但是使用lua的原子性直接报错
ErrorException: Redis::eval() expects parameter 3 to be int, array given in /Users/xxx/php/webman_jinrong/vendor/illuminate/redis/Connections/Connection.php:116
我到底层去打印最终的eval的数据的时候发现 args 和 key 是反过来了是为什么
4个回答
年代过于久远,无法发表回答
Redis::eval() expects parameter 3 to be int, array given in
整形传成了数组
https://github.com/walkor/webman/issues/273
如果使用Redis做延迟任务队列,原生的是可以支持的,但是使用
evalSha
依然不会触发任务。写了一个完整的项目,感觉这个Redis不是太友好,自己重新封装了一个