Advertisement

springboot2.0 redis通过lettuce连接包实现分布式锁中的setnx操作

阅读量:

当Spring Boot版本升级至2.0后,与之关联的spring-data-redis所采用的连接组件也发生了变化,由原先基于Jedis的实现方式调整为基于Netty框架构建、具备更高性能及线程安全特性的Lettuce连接组件。由于spring-data默认仅提供了不包含过期时间设置的setnx方法,为避免在分布式锁场景下出现死锁问题,必须自行实现带有过期时间控制的setnx操作。以下展示了通过stringRedisTemplate默认方式实现setnx的具体过程:

复制代码
 /** * @param key key值
    
      * @param value value值
    
      * @param expiredTime 过期时间(秒)
    
      * @return
    
      */
    
     private boolean setNx(String key, String value, long expiredTime) {
    
     Boolean resultBoolean = null;
    
     try {
    
         resultBoolean = stringRedisTemplate.execute((RedisCallback<Boolean>) connection

全部评论 (0)

还没有任何评论哟~