作者 邓超

x

... ... @@ -178,7 +178,16 @@ class RedisPool {
public function incr($key, $ttl = null){
if($ttl){
return $this->getClient()->eval(
"local x = redis.call('incr',KEYS[1]);redis.call('expire',KEYS[1],ARGV[1]);return x",
"
if redis.call('exists',KEYS[1]) == 0 then
local x = redis.call('incr',KEYS[1])
if x then
redis.call('expire',KEYS[1],ARGV[1])
end
return x
else
return redis.call('incr',KEYS[1])
end",
[$key, $ttl],
1
);
... ... @@ -197,7 +206,16 @@ class RedisPool {
public function decr($key,$ttl = null){
if($ttl){
return $this->getClient()->eval(
"local x = redis.call('decr',KEYS[1]);redis.call('expire',KEYS[1],ARGV[1]);return x",
"
if redis.call('exists',KEYS[1]) == 0 then
local x = redis.call('decr',KEYS[1])
if x then
redis.call('expire',KEYS[1],ARGV[1])
end
return x
else
return redis.call('decr',KEYS[1])
end",
[$key, $ttl],
1
);
... ...