PHP利用lua实现Redis Sorted set的zPop操作
function zPop($key) { $script = <<<EOD local v = redis.call('zrange', KEYS[1], 0, 0); if v[1] ~= nil then redis.call('zremrangebyrank', KEYS[1], 0, 0); return v[1]; end; return nil; EOD; return $this->cache->eval($script, [$key], 1); }
PS: 这里其实是利用了Redis的lua script;redis 5.0 会实现zPopMin 跟zPopMax