package cn.lili.cache.script; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.scripting.support.ResourceScriptSource; /** * redis 脚本 * * @author Chopper * @version v1.0 * @since * 2020-06-16 10:40 */ @Configuration public class LuaScript { /** * 库存扣减脚本 */ @Bean public DefaultRedisScript quantityScript() { DefaultRedisScript redisScript = new DefaultRedisScript<>(); redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("script/quantity.lua"))); redisScript.setResultType(Boolean.class); return redisScript; } /** * 流量限制脚本 * @return */ @Bean public DefaultRedisScript limitScript() { DefaultRedisScript redisScript = new DefaultRedisScript<>(); redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("script/limit.lua"))); redisScript.setResultType(Long.class); return redisScript; } }