REDIS自增INCR设置过期时间的原子操作(LUA&PHP实现)

redis的自增操作没有原生的设置过期时间,只能先自增然后通过expire设置过期时间,若出现特殊情况导致设置过期时间失败,则会导致业务错误。

下面是基于PHP和LUA脚本编写一个DEMO,使自增和过期时间成为原子操作,从而避免上述问题。

connect('127.0.0.1');

$lua =  <<eval($lua,["test",10],2); // eval函数请查询官方说明文档
var_dump("RES:".$sequence);
$error = $redis->getLastError();
if($error){
    var_dump($error);
}
var_dump("VAL:".$redis->get("test"));
var_dump("TTL:".$redis->ttl("test"));

你可能感兴趣的:(phpredislua)