添加依赖
<!--redis-->
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

配置

spring:redis:host: 127.0.0.1port: 6379
代码
@Service
@Slf4j
public class RedisLockService {@Autowiredprivate StringRedisTemplate redisTemplate;public boolean lock(String key, String value, int expire) {return set(key, value, "NX", "EX", expire);}public void unlock(String key, String value) {try {String currentValue = redisTemplate.opsForValue().get(key);if (!StringUtils.isEmpty(currentValue) && currentValue.equals(value)) {//解锁就是删掉key的操作redisTemplate.opsForValue().getOperations().delete(key);}} catch (Exception e) {log.error("【redis分布式锁】解锁异常,{} ", e);}}public boolean set(final String key, final String value, final String nxxx, final String expx, final long time)       {Object result = redisTemplate.execute(new RedisCallback<Object>() {@Overridepublic Object doInRedis(RedisConnection redisConnection) throws DataAccessException {RedisSerializer<String> serializer = redisTemplate.getStringSerializer();redisConnection.execute("set", new byte[][]{serializer.serialize(key), serializer.serialize(value),serializer.serialize(nxxx), serializer.serialize(expx),SafeEncoder.encode(String.valueOf(time))});return true;}});return false;}
}

java实现redis锁相关推荐

  1. java加redis锁

    redis锁的作用: 防止接口重复提交数据 maven包: <dependency><groupId>org.redisson</groupId><artif ...

  2. JAVA实现Redis锁(加锁与解锁),快速高效实现Redis加锁与解锁

    //获得锁 RLock locker = RedisUtil.getClient().getLock("锁的名字,例:Locker:TestLockA");//上锁 locker. ...

  3. Java使用Redis实现分布式锁来防止重复提交问题

    如何用消息系统避免分布式事务? - 少年阿宾 - BlogJava http://www.blogjava.net/stevenjohn/archive/2018/01/04/433004.html ...

  4. java synchronized加锁 或者redis锁不起作用

    前几天在代码中需要加锁 使用了synchronized 以及redis锁均一直不起作用 , 寻找几天后发现是因为在Controller层加了@Transactional(rollbackFor = E ...

  5. 借助Redis锁,完美解决高并发秒杀问题

    欢迎关注方志朋的博客,回复"666"获面试宝典 场景:一家网上商城做商品限量秒杀. 1 单机环境下的锁 将商品的数量存到Redis中.每个用户抢购前都需要到Redis中查询商品数量 ...

  6. Java中的锁原理、锁优化、CAS、AQS详解

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:景小财 www.jianshu.com/p/e674ee68 ...

  7. java synchronized 类锁_【java】synchronized对象锁和类锁简介【图文教程】

    平凡也就两个字: 懒和惰; 成功也就两个字: 苦和勤; 优秀也就两个字: 你和我. 跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美! 关注微信 ...

  8. 2021-3-20 狂神说java之 redis学习

    Nosql概述 Nosql = not only sql (不仅仅是SQL) 泛指非关系型数据库 关系型数据库:表格,行,列 很多的数据类型用户的个人信息,社交网络,地理位置.这些数据类型的存储不需要 ...

  9. redis锁和分布式锁的实现

    redis环境搭建 redis在java.spring.springboot中的实现 redis锁 1.添加依赖 <dependency><groupId>org.spring ...

最新文章

  1. 在layui中使用ajax传值给后台,浅谈layui 数据表格前后台传值的问题
  2. DataGridView和DataTable同步排序
  3. 银屑病与寿命的关系(调研手稿七)
  4. CF思维联系– Codeforces-987C - Three displays ( 动态规划)
  5. 智能控制第四版程序代码_晋中成本低的智能水表方便了人们生活
  6. 小猪佩奇(python)
  7. 实用机器人设计(一)-机器人技术基础
  8. 积少成多Flash(4) - ActionScript 3.0 实例之Hello World, 时钟, 计时器
  9. MySQL学习笔记(七)视图,触发器,事务,存储过程,函数,流程控制,索引
  10. 公共关系礼仪实务章节测试题——公共关系的类型(一)
  11. 用AI让逝去的亲人照片动起来后,数百万网友泪目:原来思念这么重
  12. Win11 开机资源管理器频繁崩溃闪退怎么处理?
  13. SolidWorks频繁闪退,可能是(百度)输入法引起的
  14. 台式计算机如何设置屏幕亮度,怎么调整台式电脑屏幕亮度的方法,如何调整显示器...
  15. android订单管理系统源码,生鲜o2o配送开源系统,包括Android源码+SSH后台管理系统...
  16. unshift() 与shift() 方法
  17. java json 合并_java json 合并
  18. k8s本地开发工具telepresence及部署
  19. 拉格朗日插值代码python实现(不掉包)
  20. 阿里云服务器升级node版本

热门文章

  1. 否定、合取、析取、条件、双条件(同或)、异或、条件否定、与非、或非
  2. Java知识点整理(API) 集合 二进制 补码
  3. 轻量级秀恩爱网站源码 – 我们的小窝(星益云)
  4. Hive中数据库和表的操作(HSQL)
  5. 蒙哥马利算法(Montgomery Algorithm)|蒙哥马利约简、模乘、模幂
  6. Comparable接口、Comparator接口、Cloneable接口
  7. 充电宝转换率排行,转化率最好的充电宝推荐
  8. [ZZ]淘宝被曝更像媒体隐忧:80%收入来源在线广告
  9. 数据分析师,未来的出路在哪里?
  10. Blender 中的字体目录