• 2024-05-22模拟redis的setIfAbsent
    一、导入依赖<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>2.6.2</version></dependency> 二、缓存类publicclassCustomCache<K,V>{private
  • 2023-07-02Redis分布式锁
    一、简介单机器环境下,可以通过锁来解决共享资源的竞争问题;而在分布式集群环境下,机器与机器之间的资源竞争则需要依赖Redis、ZooKeeper等中间件去协调。简单总结一下自己对Redis分布式锁的一些理解二、代码实现第一步先是获取锁,通过setnx操作,设置指定key及其过期时间。较新的版
  • 2023-06-27redis-分布式锁注意事项
    lockKey:商品标识value:当前线程标识1.确保每把锁同一时间能且仅能上一次setnx(setifnotexists):当锁不存在时才上锁redisTemplate.opsForValue().setIfAbsent(lockKey,value)没加上锁需要返回错误码直接让其重试2.上锁成功后,需要在之后将锁释放redisTemplate.delete(l
  • 2023-05-28十三、利用分布式锁解决超卖问题
    库存超卖问题对于商城系统。超卖了一部分可以补获,12306对超卖问题更敏感。JMeter的使用  超卖演示&使用JMeter对购票功能进行压测  使用synchronized是否能解决库存超卖?超卖问题出现原因: 假设余票为1,此时多个线程同时查询到这条余票记录,并进行扣减,那么则会导致