我正在从ehcache迁移到redis。在ehcache中有默认方法来为一个键设置空闲时间(setTimeToIdle()而不是setTimeToLive())。在redis中是否有相同的等效设置空闲时间?如果没有任何工作能够实现同样的目标吗? 提前致谢
答案 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
将此类脚本推送到redis