Redis-Lua脚本

local key = KEYS[1]
if redis.call("get",key)+1 > tonumber(ARGV[1]) then
	return true;
else
	return false;
end

初始化加载

@PostConstruct
    public void init() {
        getRedisScript = new DefaultRedisScript<>();
        getRedisScript.setResultType(Boolean.class);
        getRedisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("limitConcurrent.lua")));
        redisTemplate.opsForValue().set(COUNT_KEY, 0);
    }

执行

@Test
    public void testLua() throws Exception {
        Boolean result = redisTemplate.execute(getRedisScript, Lists.newArrayList(COUNT_KEY), 10);
    }

传递的第一个List对应LUA脚本中的KEYS数组,后续的参数对应LUA脚本中的ARGV数组
参考https://blog.csdn.net/u011890101/article/details/84336654


版权声明:本文为BtWangZhi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。