从ehcache迁移到redis:相当于redis中的ehcache setTimeToIdle()

时间:2015-07-22 07:49:48

标签: java redis ehcache

我正在从ehcache迁移到redis。在ehcache中有默认方法来为一个键设置空闲时间(setTimeToIdle()而不是setTimeToLive())。在redis中是否有相同的等效设置空闲时间?如果没有任何工作能够实现同样的目标吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

Redis中没有这样的命令,您只能设置生存时间。但是你可以做一个简单的解决方法,你必须使用2个命令,首先设置新的ttl然后返回密钥。并且您希望这两个命令是原子的,因此您可以使用lua脚本或事务(使用MULTI http://redis.io/commands/multi)。
这是一个lua脚本示例,用于检查'键'如果是,则设置为10秒的过期并返回该值,否则返回-1:

local redis_key = redis.call('get', 'key')
if redis_key then 
    redis.call('expire', 'key', '10')
    return redis_key
end
return -1

您需要使用http://redis.io/commands/eval

将此类脚本推送到redis