当前位置: 首页 > news >正文

springboot redisTemplate.opsForValue().setIfAbsent返回null原理

一、版本

springboot版本:spring-boot-starter-data-redis 2.1.6
redisson版本:redisson-spring-boot-starter 3.11.5

二、场景

Boolean res = redisTemplate.opsForValue().setIfAbsent("key","value");

以上代码同一时间多次执行操作相同的key,除第一次返回true外,其余返回null,原因是redisson未对netty返回null的数据作处理,代码如下:

此代码在org.redisson.spring.data.connection.RedissonConnection

此代码在io.netty.util.concurrent.DefaultPromise
在这里插入图片描述
issues地址:https://github.com/redisson/redisson/issues/2811

http://www.lryc.cn/news/164955.html

相关文章:

  • Python调用Jumpserver的Api接口增删改查
  • 后端入门教程:从零开始学习后端开发
  • 无涯教程-JavaScript - DB函数
  • 2023年财务顾问行业研究报告
  • 2023SICTF ROUND2 baby_heap
  • buuctf crypto 【密码学的心声】解题记录
  • 论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)
  • 41 个下载免费 3D 模型的最佳网站
  • SpringMVC之JSR303和拦截器
  • 通过rabbitmq生成延时消息,并生成rabbitmq镜像
  • 结构型模式-外观模式
  • vue三个点…运算符时报错 Syntax Error: Unexpected token
  • C# wpf 实现桌面放大镜
  • Mybatis中的#{}和${}的区别
  • 选择(使用)数据库
  • GFS分布式文件系统
  • 虚函数、纯虚函数、多态
  • QGIS学习3 - 安装与管理插件
  • LeetCode377. 组合总和 Ⅳ
  • QT将数据写入文件,日志记录
  • vue2与vue3的使用区别与组件通信
  • 亚信科技与中国信通院达成全方位、跨领域战略合作
  • 华为Linux系统开发工程师面试
  • Qt利用QTime实现sleep效果分时调用串口下发报文解决串口下发给下位机后产生的粘包问题
  • 人工智能:神经细胞模型到神经网络模型
  • Redisson分布式锁实战
  • JavaScript中循环遍历数组、跳出循环和继续循环
  • Java——》Synchronized和Lock区别
  • JDK20 + SpringBoot 3.1.0 + JdbcTemplate 使用
  • CTFhub_SSRF靶场教程