SpringBoot整合Redis以及Lua脚本

首先在application.yml中配置redis地址和端口号

spring:
  redis:
    host: localhost
    port: 6379

接着创建Redis和RedisScript配置类

@Configuration
public class RedisConfig {
    @Bean
    public StringRedisTemplate getStringRedisTemplate(RedisConnectionFactory factory) {
        StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
        stringRedisTemplate.setConnectionFactory(factory);
        return stringRedisTemplate;
    }
}
@Configuration
public class RedisScriptConfig {

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

然后在方法中调用相应的方法

@RestController
@Slf4j
public class redisController {

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Resource
    private RedisScript<String> redisScript;

    @GetMapping("/test")
    public String test() {
        stringRedisTemplate.opsForValue().set("hello", "world!");
        stringRedisTemplate.opsForValue().set("hi", "morning!");
        List<String> redisKeys = Arrays.asList("hello", "hi");
        String result = stringRedisTemplate.execute(redisScript, redisKeys, "good!");
        log.info(result);
        return result;
    }
}

最后,RedisScriptConfig中的lua脚本内容为

return KEYS[1]..KEYS[2]..ARGV[1]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容