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)
还没有任何评论哟~
