zoukankan      html  css  js  c++  java
  • 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);
    

      

  • 相关阅读:
    samtools获取uniq reads
    NSDate的比较
    UIViewAlertForUnsatisfiableConstraints布局问题
    如何将网页保存为pdf
    使用Carthage管理iOS依赖库
    输出格式
    解决问题思路
    重:将好用的控件,上次github,
    解决CocoaPods慢的小技巧
    swift开发笔记28 CoreML
  • 原文地址:https://www.cnblogs.com/sunang/p/12778875.html
Copyright © 2011-2022 走看看