`

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

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    SpringBoot通过RedisTemplate执行Lua脚本的方法步骤

    这里的 Lua 脚本使用 `KEYS` 表来获取 KEY,并使用 `ARGV` 表来获取 ARGV。然后,它使用 `cjson` 库来将 ARGV 解码成表类型,并获取 ARGV 内的参数。 结论:本文详细介绍了 Spring Boot 通过 RedisTemplate 执行 ...

    SpringBoot通过redisTemplate调用lua脚本并打印调试信息到redis log(方法步骤详解)

    SpringBoot通过redisTemplate调用lua...通过使用FastJson实现JSON序列化,并设置RedisTemplate的序列化方式为JSON序列化,可以正确地传递参数给lua脚本。同时,lua脚本可以使用print函数将调试信息打印到redis log中。

    SpringBoot+Redis执行lua脚本的方法步骤

    4. 使用 RedisTemplate 执行 Lua 脚本: * 需要引入依赖:`&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt;&lt;/dependency&gt;` * 可以使用 Lua ...

    Java学习资料-Spring Boot - 结合 Redis 使用 Lua脚本

    最后,创建一个Service类,利用RedisTemplate或RedissonClient来执行Lua脚本。 尽管使用Lua脚本有诸多优势,但也存在一些挑战。学习新的Lua语言和相关框架会增加开发者的负担,调试也相对较困难,因为脚本是在...

    SpringBoot-redis-lua

    在SpringBoot项目中,我们可以使用`RedisTemplate`的`execute`方法执行Lua脚本。首先,将Lua脚本写入一个`.lua`文件,如`increment.lua`,内容可能如下: ```lua local value = redis.call('GET', KEYS[1]) value =...

    基于Redis+Lua脚本实现分布式限流组件封装的方法

    接下来,创建`RedisConfiguration`类,这个类配置了RedisTemplate和用于执行Lua脚本的`DefaultRedisScript`。`RedisTemplate`是Spring Data Redis提供的,用于与Redis服务器交互。`DefaultRedisScript`被配置为执行`...

    redis lua实现高并发限流.docx

    在提供的代码中,`RedisLimiter` 类是一个 Spring 组件,它利用 `RedisTemplate` 和 Lua 脚本来实现限流功能。`limitWait` 方法是服务调用方使用的方法,当并发请求超过限流阈值时,该方法会让请求等待,而不是直接...

    redistemplate

    7. **Lua脚本**:Redis支持在服务器端执行Lua脚本,这可以用于执行复杂的操作,例如批量处理键或原子更新多个键。 8. **连接池**:在使用Redis客户端时,连接池是一种常见的优化手段,它可以复用已建立的连接,减少...

    SpringBoot 使用 Redis 分布式锁解决并发问题.docx

    对于较低版本的SpringBoot,可以使用Lua脚本来保证原子性,因为Redis服务器会将整个Lua脚本作为一个原子操作执行。以下是一个简化的`RedisLock`工具类示例: ```java @Component public class RedisLock { @...

    (源码)基于Spring Boot的高并发秒杀系统.zip

    # 基于Spring Boot的高并发秒杀系统 ## 项目简介 ... 使用Lua脚本进行复杂的Redis操作,如库存扣减等。 3. 用户参数解析 自定义用户参数解析器,从Cookie中获取用户信息并注入到处理器方法中。 4. Web配置

    分布式缓存RedisTemplate取不到数据的问题(csdn)————程序.pdf

    确保并发控制策略有效,如使用 Redis 的事务或者 Lua 脚本。 10. **监控与日志**: 使用 Redis 监控工具(如 RedisInsight 或 Redis Commander)检查 Redis 服务器的状态,查看是否有异常情况。同时,查看应用的...

    redisLock.rar

    3. 注册RedisTemplate:通过`RedisTemplate`,我们可以执行各种Redis操作,包括设置和获取键值,以及使用lua脚本。 4. 实现分布式锁:编写一个分布式锁的接口和实现类,使用`RedisTemplate`的`opsForValue()....

    test-bloomfilter.zip

    在本项目中,我们将探讨如何在Java环境下,利用SpringBoot框架和Redis来实现布隆过滤器,具体分为两种方法:使用Redisson客户端和通过Lua脚本直接在Redis服务器端执行。 首先,我们来了解Redisson客户端的使用。...

    springboot-redis事务

    在处理Redis事务时,我们需要根据实际需求选择合适的方法,可能是简单的`MULTI/EXEC`,也可能是基于Lua脚本的分布式事务,甚至采用更复杂的分布式事务管理框架。理解这些概念和技术,有助于我们在实际项目中更好地...

    基于Spring AOP 的声明式和编程式分布式锁,支持RedisTemplate、Redisson、Zookeeper

    Redisson是一个全面的Redis客户端,它提供了更多高级功能,如支持lua脚本、分布式数据结构等。我们可以利用Redisson的Lock接口来实现分布式锁,它提供了更丰富的锁操作,如公平锁、可重入锁等。通过在AOP切面中调用...

    高并发核心技术 - 幂等性 与 分布式锁1

    在上述代码中,`lock`方法尝试获取锁,而`unlock`方法使用Lua脚本进行原子解锁,确保在释放锁时只有持有锁的节点才能执行。这种方式能有效解决并发环境下幂等问题,同时也保证了系统的高性能和可扩展性。 分布式锁...

    Spring Data Redis中文参考文档

    4. **事务和脚本支持**:支持Redis的事务机制和Lua脚本功能,增强了数据的一致性和复杂操作的处理能力。 5. **对象映射**:支持自动的对象到Redis数据结构的映射,简化了数据存取逻辑。 #### 三、版本新特性概览 -...

    redisDemo.zip

    你可以使用`RedisConnection.execute()`方法执行Lua脚本,实现原子操作。 6. **发布/订阅**:如果项目中包含消息传递需求,Spring Data Redis也支持发布/订阅模式。通过`RedisMessageListenerContainer`监听Redis...

    Redis,解压后可直接使用

    7. **Lua脚本**:Redis内置了Lua解释器,用户可以通过Lua脚本执行复杂的操作,提高命令执行效率。 接下来,我们将讨论如何在SpringBoot项目中集成Redis: 1. **依赖添加**:在SpringBoot项目中,你需要在`pom.xml`...

    Redis工具类

    Redis是一种高性能的键值对...在实际项目中,根据需求可以扩展其功能,如支持事务、lua脚本等高级特性,进一步提升开发效率和代码质量。在使用时,只需引入该工具类并调用相应的方法,即可轻松完成Redis的存取操作。

Global site tag (gtag.js) - Google Analytics