redisTemplate执行lua

Test lua脚本 直接测试

EVAL " local comment_user_key=KEYS[1] local gold=ARGV[1] local redis_gold=redis.call('GET',comment_user_key) if redis_gold  then  redis_gold=tonumber(redis_gold)+tonumber(gold)  else  redis_gold=tonumber(gold)  end  redis.call('SET',comment_user_key,redis_gold) redis_gold=redis.call('GET',comment_user_key) return redis_gold " 1 key123 1000

Test lua脚本 代码测试

public static final StringBuilder USER_AIMS_GOLD_LUA=new StringBuilder();
	static {
	
		USER_AIMS_GOLD_LUA.append(" local comment_user_key=KEYS[1]");
		USER_AIMS_GOLD_LUA.append(" local gold=ARGV[1]");
		USER_AIMS_GOLD_LUA.append(" local redis_gold=redis.call('GET',comment_user_key)");
		USER_AIMS_GOLD_LUA.append(" if redis_gold ");
		USER_AIMS_GOLD_LUA.append(" then ");
		USER_AIMS_GOLD_LUA.append(" redis_gold=tonumber(redis_gold)+tonumber(gold) ");
		USER_AIMS_GOLD_LUA.append(" else ");
		USER_AIMS_GOLD_LUA.append(" redis_gold=tonumber(gold) ");
		USER_AIMS_GOLD_LUA.append(" end ");
		USER_AIMS_GOLD_LUA.append(" redis.call('SET',comment_user_key,redis_gold)");
		USER_AIMS_GOLD_LUA.append(" redis_gold=redis.call('GET',comment_user_key)");
		USER_AIMS_GOLD_LUA.append(" return redis_gold ");
		LogManager.info(USER_AIMS_GOLD_LUA.toString());
	}
public Object setLuaAimsGold(String keys,Object gold)  {
		byte[] lni=redisTemplate.execute(
						(RedisConnection connection)-> connection.eval(
								
							RedisLuaText.USER_AIMS_GOLD_LUA.toString().getBytes(),//lua脚本字符串
							ReturnType.VALUE,//设置返回值 byte[]
							1, //设置key数量
							keys.getBytes(), //key1
							gold.toString().getBytes()//Args 值
	
							
							)
				);

		return new String(lni);
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值