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

服装网站ui设计wordpress cpu突然

服装网站ui设计,wordpress cpu突然,淄博手机网站建设费用,哔哩哔哩网页版稍后再看在哪里Redisson Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。简单说就是redis在分布式系统上工…

Redisson

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。简单说就是redis在分布式系统上工具的集合,Redission提供了分布式锁的多种多样的功能.

使用redission

自定义redis分布式锁无法自动续期,比如,一个锁设置了1分钟超时释放,如果拿到这个锁的线程在一分钟内没有执行完毕,那么这个锁就会被其他线程拿到,可能会导致严重的线上问题,在秒杀场景下,很容易因为这个缺陷导致的超卖了。

redission 超时时间1m 执行逻辑的时候3m

Redisson 锁加锁流程:

线程去获取锁,获取成功则执行lua脚本,保存数据到redis数据库。如果获取失败: 一直通过while循环尝试获取锁(可自定义等待时间,超时后返回失败)。Redisson提供的分布式锁是支持锁自动续期的,也就是说,如果线程仍旧没有执行完,那么redisson会自动给redis中的目标key延长超时时间,这在Redisson中称之为 Watch Dog 机制。

java中的使用

引入redisson相关jar

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--配置redission--><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.12.5</version></dependency>

application文件

# 设置redis的信息
spring.redis.host=192.168.253.16
spring.redis.database=0
spring.redis.password=root
spring.redis.port=6379

配置类:

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RedissonConfig {@Value("${spring.redis.host}")private String host;@Value("${spring.redis.port}")private String port;@Value("${spring.redis.password}")private String redisPassword;@Beanpublic RedissonClient getRedisson(){Config config = new Config();
// //多节点config.useClusterServers()//单机模式  依次设置redis地址和密码config.useSingleServer().setAddress("redis://" + host + ":" + port).setPassword(redisPassword);return Redisson.create(config);}
}

controller(控制层)

import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.Objects;@RestController
@RequestMapping("/redisLock")
public class RedisLockController {@Resourceprivate StringRedisTemplate stringRedisTemplate;@Resourceprivate RedissonClient redisson;private static final String REDIS_KEY = "redis_test";private static final int MAX_SIZE = 10;/*** 初始化库存*/@PostMapping("/init")public void init() {stringRedisTemplate.opsForValue().set(REDIS_KEY, String.valueOf(MAX_SIZE));}/*** 扣库存业务*/@PostMapping("/test")public void exportInventory() {String lockKey = "product001";RLock lock = redisson.getLock(lockKey);try {lock.lock();int s = Integer.parseInt(Objects.requireNonNull(stringRedisTemplate.opsForValue().get(REDIS_KEY)));System.out.printf("1号服务:库存当前为:" + s + "\n");//stringRedisTemplate.opsForValue().set(REDIS_KEY, String.valueOf(s));if(s>0) {stringRedisTemplate.opsForValue().decrement(REDIS_KEY);}} catch (Exception e) {} finally {lock.unlock();}}
}

使用jmeter测试:

写两个一模一样的项目 通过jmeter访问 redisLock/test

两个服务中的数据不重复即可

http://www.yayakq.cn/news/25089/

相关文章:

  • 花店网站开发设计的项目结构厦门做企业网站多少钱
  • 网站建设作业过程贵阳花果园网站建设
  • 做带v头像的网站南京宣传片拍摄制作公司
  • 网站用户细分苏州网站设计公司兴田德润在哪里呢
  • 曲周县建设局网站蛙蛙写作网站
  • 烟台电子商务网站怎样判断网站的好坏
  • 济南英文网站建设药品在网站上做标签有哪些分类
  • 设计企业网站哪家好聊城建设路小学网站
  • 建设银行杭州分行网站加盟做地方门户网站
  • 北仑网站网页建设十大开源软件
  • 济南高端网站制作公司关于网站建设的报告
  • 网站可以查出在哪里做的吗西安创意网站建设
  • qq刷会员建设网站网站建设幻灯片背景图片素材
  • 海纳企业网站管理系统数据分析培训机构哪家好
  • 网站域名 被别人备案北京新闻最新消息报道
  • 网站开发与部署网络推广培训网
  • 网站制作带模板破解版做装饰公司网站6
  • 平台网站建设设计网页开发工具所见即所得
  • 哪里有网站制作技术wordpress图片排列显示
  • wordpress 资源站主题亚马逊网官网首页
  • 东明网站制作专业建站
  • 网站开发网上接单wordpress 极简 主题
  • 从化市营销型网站建设wordpress 如何结合vue
  • 网站 全屏幻灯片高端网站建设口碑
  • 全国最大型网站建设网站运营与建设作业
  • 电商行业网站建设及维护网页制作的开发平台
  • 卦神岭做网站willfast优化工具下载
  • 个人响应式网站重庆企业年报网上申报入口
  • 如何快速提高网站关键词排名世界500强企业关于优秀员工的12条核心标准
  • 很有设计感的企业网站中国纪检监察报简介