
redis
文章平均质量分 95
码炫课堂-码哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
-
浅谈Redis分布式锁(下)
在上一篇我们自定义了一个Redis分布式锁,用来解决多节点定时任务的拉取问题(避免任务重复执行):加锁操作不是原子性的(setnx和expire两步操作不是原子性的,中间宕机会导致死锁)// 1.先setnxif (lock!// 2.再expire} else {/*** 尝试上锁:setNX + expire* @param lockKey 锁* @param value 对应的值* @param expireTime 过期时间* @param timeUnit 时间单位。原创 2023-12-24 10:06:38 · 1041 阅读 · 0 评论 -
Redis分布式锁(中)
我们在不久前介绍了SpringBoot定时任务,最近又一起探究了如何使用Redis实现简单的消息队列,都是一些不错的小知识点。为了能跟前面的内容产生联动,这次我们打算把Redis分布式锁相关的介绍融合进定时任务的案例中,学起来更带劲~原创 2023-11-16 11:04:40 · 527 阅读 · 0 评论 -
Redis分布式锁(上)
明白了“JVM锁”名字的由来,我们再来聊什么是“锁”,以及怎么“锁”。有时候我们很难阐述清楚某个事物是什么,但很容易解释它能干什么,JVM锁也是这个道理。JVM锁的出现,就是为了解决线程安全问题。所谓线程安全问题,可以简单地理解为数据不一致(与预期不一致)。什么时候可能出现线程安全问题呢?多线程环境有共享数据有多条语句操作共享数据/单条语句本身非原子操作(比如i++虽然是单条语句,但并非原子操作)原创 2023-11-16 10:48:04 · 159 阅读 · 0 评论