RedisTemplate opsForValue().setIfAbsent()

1 直接看代码

        System.out.println(redisTemplate.opsForValue().get("redisKey"));  // null
        boolean redisKeyBoolean = redisTemplate.opsForValue().setIfAbsent("redisKey","666");
        System.out.println("第一次redisKey没有值,则:"+redisKeyBoolean);  // 第一次redisKey没有值,则:true
 
        System.out.println(redisTemplate.opsForValue().get("redisKey"));  // 666
        redisKeyBoolean = redisTemplate.opsForValue().setIfAbsent("redisKey","999");
        System.out.println("第二次redisKey有值,则:"+redisKeyBoolean);  // 第二次redisKey有值,则:false
 
        System.out.println(redisTemplate.opsForValue().get("redisKey"));  // 666
        if(!redisKeyBoolean){
			// 先获取值返回,然后设置新值
            Object redisKey = redisTemplate.opsForValue().getAndSet("redisKey", "000");
            System.out.println(redisKey);  // 666
            System.out.println(redisTemplate.opsForValue().get("redisKey"));  // 000
        }

2 opsForValue().setIfAbsent()带过期时间的重载

image

posted @ 2021-12-28 20:06  姚狗蛋  阅读(1358)  评论(0编辑  收藏  举报