@Configuration
@Data
public class RedisConfiguration {
@Bean
public RedisScript redisRestoreScript() {
DefaultRedisScript redisScript = new DefaultRedisScript<>();
redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("restore_redis_script.lua")));
redisScript.setResultType(List.class);
return redisScript;
}
}
lua脚本
local key = KEYS[1]
local value = KEYS[2]
local ttl = KEYS[3]
local ret = {}
local ok = redis.call('setnx', key, value)
if ok == 1 then
redis.call('expire', key, ttl)
table.insert(ret,1)
else
table.insert(ret,0)
end
return ret