`

RedisTemplate 使用 LUA脚本

 
阅读更多

 

 

 

@Data
public class Goods implements Serializable {
    private String id;
    private String name;
    private int stock;
}

 

 

 

 

 String key = "123456";
        //String script = " redis.call('set', KEYS[1], ARGV[1]) ";
        // 注意 KEYS  ARGV 需要大写,否则报错
        String script = " redis.call('set', KEYS[1], ARGV[1])" +
                "local str = redis.call('get', KEYS[1])   return str" ;
        DefaultRedisScript<Goods>  defaultRedisScript = new DefaultRedisScript<>(script,Goods.class);
        List<String> keys = Arrays.asList(key);

        Goods goods = new Goods();
        goods.setId("123456");
        goods.setStock(100);
        goods.setName("iPhone 12");
        String value1 = JSON.toJSONString(goods);
        Object execute = redisTemplate.execute(defaultRedisScript, keys, value1);
        System.out.println(execute);

 

 

KEYS[1] 表示 第一个参数占位符, ARGV[1] 表示 第一个参数对应的value

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics