- 博客(4)
- 收藏
- 关注
转载 分布式锁--Redis秒杀(互斥锁)(一)
一、业务场景中秋佳节,进行月饼秒杀,特价,限量1000份,不限每人秒的份数,不要超卖即可。二、SetNX实现1. 分布式锁SetNX实现RedisLock.java/** * redis 分布式锁 */@Component@Slf4jpublic class RedisLock { @Autowired private RedisTemplate redisTemplate; /** * 加锁 * @param key produ
2022-03-24 17:25:02 1021
转载 如何保持mysql和redis中数据的一致性?
1、流程图说明缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。2、疑问在缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。3、更新策略3.1 先更新数据库,再更新缓存这套方案,大家是普遍反对的。为什么呢?有如下两点原因。3.1.1 原因一(线程安全角度)同时有请求A和请求B进行更新操作,那么会出现1)线程A更新了数据库2)线程B更新了数据库
2022-02-24 14:28:12 127
原创 定时任务Schedule多线程配置
在项目过程中经常会用到spring的Schedule定时任务然后Schedule定时任务默认是单线程的,在项目过程中就会出现比较耗时的任务跟比较频繁的任务冲突问题,单线程情况下,例如8:00有一个耗时大约10分钟的定时任务,还有一个每一分钟一次的定时任务,那么8:00任务开始时,一分钟的任务就已经进入排队序列,并不执行故而需要配置多线程的定时任务配置配置文件:ScheduleConfig.javapackage com.snimay.business.job;import org.s
2021-09-29 15:45:42 1978
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人