RedisTemplate- lua 异常

Redis exception; nested exception is io.lettuce.core.RedisException: java.lang.IllegalStateException

问题描述

在使用 redisTemplate 执行 lua 脚本的时候出现这个错

解决方案

原因: 接收 lua 执行结果和 lua 返回结果类型不一致

@Bean
public DefaultRedisScript<Long> secKillScript() {
    DefaultRedisScript<Long> defaultRedisScript = new DefaultRedisScript<>();
    defaultRedisScript.setResultType(Long.class);
    defaultRedisScript.setScriptSource(
        new ResourceScriptSource(new ClassPathResource("script/seckill.lua")));
    return defaultRedisScript;
}

这里的Long 要和 lua script 中返回的对应,如果是返回字符串,那么就要改成String

上一篇:RedisTemplate中opsForValue的使用 (复制粘贴的,没有练习,找时间回顾 )


下一篇:分布式高并发都不会还做Java程序员,三年*ava经验面经