spring boot 2.0 redis 分布式锁

基于spring boot 2.0 redis 分布式锁,对于redis的一些基本配置及jar不做相关介绍,博客只是针对分布式锁使用。

java代码:

@Autowired
private RedisTemplate redisTemplate;

//测试方法
@Test
public void testRedis() throws Exception {
    for (int i = 0; i < 1000; i++) {
        this.asyncTest();
    }
}

//测试异步方法
@Async
public void asyncTest() {
    String key = "test";
    String value = "test";
    long exptime = 5 * 60;
    //核心代码: redis set成功返回true,否则返回false,当redis已存在相关的key时,返回false
    Boolean success = (Boolean)redisTemplate.execute((RedisCallback) connection -> {
        RedisSerializer keySerializer = redisTemplate.getKeySerializer();
        RedisSerializer valueSerializer = redisTemplate.getValueSerializer();
        return connection.set(keySerializer.serialize(key), valueSerializer.serialize(value), Expiration.from(exptime, TimeUnit.SECONDS), RedisStringCommands.SetOption.ifAbsent());
    });

    System.out.println(success);
}

你可能感兴趣的:(spring boot 2.0 redis 分布式锁)