1、问题
redisTemplate.execute 执行 lua脚本:if redis.call(“get”,KEYS[1]) == ARGV[1] then return redis.call(“del”,KEYS[1]) else return 0 end
java.lang.ClassCastException: java.lang.Long cannot be cast to [B
2、原因
原因是上面执行了脚本会有一个返回值,我们在下RedisScript指定一下返回值就好了,我这里指定为Long,如下
3、解决
RedisScript redisScript = RedisScript.of(luaScript,Long.class);
redisTemplate.execute(redisScript, Arrays.asList(OrderConstans.ORDERSN_PREFIX + “:” + userId), submitOrderVo.getOrderSn());
这下就没有报错了
原子验令牌时,使用redisTemplate执行lua脚本出现 java.lang.ClassCastException: java.lang.Long cannot be cast to [B
最新推荐文章于 2024-04-13 12:12:21 发布
关键词由CSDN通过智能技术生成