• Redis学习笔记#10 lua脚本,整合springboot调用


    lua代码:

    -- checkandset.lua local current = redis.call('GET', KEYS[1]) if current == ARGV[1] then redis.call('SET', KEYS[1], ARGV[2]) return true end return false

    配置:

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {

      RedisTemplate<String, Object> template = new RedisTemplate<>();  
      template.setConnectionFactory(factory);
      template.setKeySerializer(new StringRedisSerializer());
      template.setValueSerializer(new StringRedisSerializer());
      return template;
    }


    @Bean
    public RedisScript<Boolean> redisScript() {   DefaultRedisScript<Boolean> redisScript = new DefaultRedisScript<>(); ScriptSource scriptSource = new ResourceScriptSource(new ClassPathResource("META-INF/scripts/checkandset.lua")); redisScript.setResultType(Boolean.class); redisScript.setScriptSource(scriptSource); return redisScript;
    }

    调用:

    @Autowired
    RedisTemplate redisTemplate;
    
    @Autowired
    RedisScript<Boolean> redisScript;
    
    List<String> keys = new ArrayList<>();
    keys.add("stock");
    return redisTemplate.execute(redisScript, keys, 2);
    

      

  • 相关阅读:
    常见算法复杂度解析
    Linux shell脚本根据文件路径信息获取路径和名称
    linux 目录递归替换差异文件
    Linux普通用户具备root用户操作权限
    java线上异常定位工具
    OCR
    国内镜像
    hadoop镜像
    处理Jsp出现乱码问题
    无缝滚动
  • 原文地址:https://www.cnblogs.com/sunang/p/12778875.html
Copyright © 2020-2023  润新知