public class PbmMsApplication { public static void main(String[] args) { SpringApplication.run(PbmMsApplication.class, args); } @Autowired private StringRedisTemplate redisTemplate; private static final String SET_NX_WITH_EXPIRE = //1. // "local rst = redis.call('SETNX',KEYS[1],ARGV[1]);" // + "if (rst==1) then redis.call('PEXPIRE', KEYS[1], ARGV[2]); end;" // + " return rst;"; //2. "local rst = redis.call('GET',KEYS[1]);" + " return rst;"; @PostConstruct public void init(){ String key = "mtf20180518001"; redisTemplate.opsForValue().set(key, "我是马腾飞"); List<String> keys = new ArrayList<>(1); keys.add(key); RedisScript<String> SET_NX_WITH_EXPIRE_SCRIPT = new DefaultRedisScript<>(SET_NX_WITH_EXPIRE, String.class); //1.将 key 的值设为 value,当且仅当 key 不存在。 将 key 的值设为 value,当且仅当 key 不存在。 SETNX 是SET if Not eXists的简写。 // Object object = redisTemplate.execute(SET_NX_WITH_EXPIRE_SCRIPT,redisTemplate.getStringSerializer(),new GenericToStringSerializer<>(String.class),keys,"","5000"); //2. Object object = redisTemplate.execute(SET_NX_WITH_EXPIRE_SCRIPT,redisTemplate.getStringSerializer(),new GenericToStringSerializer<>(String.class),keys); System.out.println("object="+object); }
Springboot 中使用lua脚本调用redis命令
最新推荐文章于 2024-03-31 09:55:13 发布