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

做网站 图片需要多大的哈尔滨网站设计多少钱

做网站 图片需要多大的,哈尔滨网站设计多少钱,要制作一个自己的网站,wordpress 翻页画册文章要点 自定义配置属性类集成配置RedisTemplate集成配置分布式锁Redisson使用分布式锁简单实现超卖方案 1. 项目结构 2. 集成RedisTemplate和Redisson 添加依赖 依赖的版本与继承的spring-boot-starter-parent工程相对应#xff0c;可写可不写 !--spring data redis…文章要点 自定义配置属性类集成配置RedisTemplate集成配置分布式锁Redisson使用分布式锁简单实现超卖方案 1. 项目结构 2. 集成RedisTemplate和Redisson 添加依赖 依赖的版本与继承的spring-boot-starter-parent工程相对应可写可不写 !--spring data redis cache--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- redis依赖commons-pool 这个依赖一定要添加 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependency!--redisson--dependencygroupIdorg.redisson/groupIdartifactIdredisson-spring-boot-starter/artifactIdversion3.15.6/version/dependency!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeprovided/scope/dependency大概图解 如上图先配置application.yml设置Redis的各项属性包括ip端口密码。再注入。 server:port: 8080# Redis配置 spring:redis:host: 192.168.200.131port: 6379password: root// RedisConfigProperties.java Data ConfigurationProperties(prefix spring.redis) public class RedisConfigProperties {private String host;private int port;private String password; }// RedisTemplateConfig.java Configuration public class RedisTemplateConfig {AutowiredRedisConfigProperties redisConfigProperties;Beanpublic RedisConnectionFactory redisConnectionFactory() {RedisStandaloneConfiguration config new RedisStandaloneConfiguration(redisConfigProperties.getHost(), redisConfigProperties.getPort());config.setPassword(redisConfigProperties.getPassword());return new LettuceConnectionFactory(config);}Beanpublic RedisTemplateString, Object redisTemplate(){RedisTemplateString,Object template new RedisTemplate();template.setConnectionFactory(redisConnectionFactory());// 设置序列化器等其他配置return template;} }// RedissonConfig.java Configuration EnableConfigurationProperties({RedisConfigProperties.class}) public class RedissonConfig {AutowiredRedisConfigProperties redisConfigProperties;Beanpublic RedissonClient redissonClient(){// 1. 创建配置文件Config config new Config();// 2. 设置单节点服务器配置config.useSingleServer().setAddress(redis://redisConfigProperties.getHost():redisConfigProperties.getPort());// 3. 如果Redis设置了密码这里需要设置密码config.useSingleServer().setPassword(redisConfigProperties.getPassword());// 4. 创建RedissonClient实例RedissonClient redisson Redisson.create(config);return redisson;} }到这里RedisTemplate和Redisson就已经集成好了后续使用只需要注入就行。 例如 RestController RequestMapping(value /order) public class OrderController {Autowired//private RedisTemplate redisTemplate;private StringRedisTemplate redisTemplate; //通常用这个StringRedisTemplateAutowiredprivate RedissonClient redissonClient;...... }3. 模拟分布式场景下超卖现象 OrderController /**** 抢单*/GetMapping(value /v1/{id}/{num})public String addv1(PathVariable(value id)String id,PathVariable(num)Long num) throws InterruptedException {// 1.查询库存int count Integer.valueOf(redisTemplate.opsForValue().get(id));System.out.println(剩余库存:count);// 2.库存充足if (countnum){//模拟操作TimeUnit.SECONDS.sleep(5);//递减库存Long decrement redisTemplate.opsForValue().decrement(id, num);System.out.println(递减库存后剩余库存:decrement);//其它操作 略System.out.println(----添加订单了);return 下单成功;}//库存不足else {return 库存不足;}}复制一个端口为8081的配置模拟分布式服务 启动两个服务 在Redis中设置一个键值对water:2模拟水的库存为2. 浏览器同时发送2个请求模拟有2个用户同时每人买2瓶水 http://127.0.0.1:8080/order/v1/water/2 http://127.0.0.1:8081/order/v1/water/2 出现超卖现象 4. 利用Redisson分布式锁防止超卖 关键代码 RLock lock redissonClient.getLock(mylock_ id); lock.lock(); //自旋获取锁 ... ... lock.unlock();首先记得set water 2 OrderController /**** 抢单使用分布式锁*/GetMapping(value /{id}/{num})public String add(PathVariable(value id)String id,PathVariable(num)Long num) throws InterruptedException {//对该商品加锁加锁成功则判断库存避免多人同时判断某一个商品的库存RLock lock redissonClient.getLock(mylock_ id);lock.lock(); //自旋获取锁System.out.println(获取了锁lock.getName());try {// 1.查询库存int count Integer.valueOf(redisTemplate.opsForValue().get(id));System.out.println(剩余库存:count);// 2.库存充足if (countnum){//模拟操作TimeUnit.SECONDS.sleep(5);//递减库存Long decrement redisTemplate.opsForValue().decrement(id, num);System.out.println(递减库存后剩余库存:decrement);//其它操作 略System.out.println(----添加订单了);return 下单成功;}//库存不足else {return 库存不足;}} finally {//释放锁System.out.println(释放了锁lock.getName());lock.unlock();}}启动2个服务浏览器同时发送2个请求 http://127.0.0.1:8080/order/water/2 http://127.0.0.1:8081/order/water/2 防止了超卖现象
http://www.hkea.cn/news/14289580/

相关文章:

  • 爱文者原创网优化网站用什么软件好
  • 德阳网站建设公司哪家好做游戏网站需要哪些许可
  • 网站seo新手ps网站建设要知道的知识
  • 南通seo网站建设费用wordpress取第一张图片
  • 昆明企业网站设计工业设计大学排名前50
  • 微信分享接口网站开发 php免费项目管理软件app
  • wordpress块引用郑州关键词优化费用
  • 网站怎么算抄袭深圳市建设集团
  • 桐城市住房与建设网站青岛网页设计
  • 可以做网站首页的图片游戏开发物语攻略
  • 泰安网站建设泽讯如何做好网站推广营销
  • 如何在360网站上做软文推广培训机构网站设计好吗
  • 东莞网站建设aj博客html in wordpress
  • 网站建设费入什么科目2018微网站开发费用
  • 网站备案年检雄安网站建设优化公司
  • 推销网站建设具备哪些知识网站开发业务流程图
  • tomcat做网站并发公司邮箱是什么
  • 做网站美工工资多少wordpress经典编辑器
  • 企业网站php源码建设网站前的市场分析主要包括哪些内容
  • 庆阳工程建设网站六安手机网站建设
  • 找人做网站会给源代码吗传承网页设计公司
  • 什么样的网站做百度广告好创建手机网页
  • 网站建设攵金手指科杰壹陆徐州网站建设专家
  • 绥化市建设工程网站招投标辽阳网站建设学校
  • 微信微网站模板建站快车是什么
  • 移动端网站开发前端模板校园文化宣传主题网站的建设
  • 深圳网站优化团队电子平台网站建设
  • 一般做网站带宽选择多大的购物网站开发周期
  • 一个公司做多个网站是好还是坏餐饮公司企业网站源码
  • 遵义网站建设方案简单制作网页