当前位置: 首页 > 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.dnsts.com.cn/news/91105.html

相关文章:

  • 零食网站推广策划书那个网站攻略做的好
  • 银川微信网站模版网站做支付功能
  • 宁波网站建设服务免费快递网站源码
  • 电子商务网站建设 市场分析asp.net 大型网站开发
  • 上海地区做旧物回收的网站比较好的网页网站设计
  • e想时代官方网站湖南常德
  • 网站怎么添加手机版wordpress prevent copy paste
  • 网站搭建框架是什么手机管理网站模板下载
  • 工程建设教育网站wordpress中文tag
  • 昆明网站建设首选公司wordpress接入翼支付
  • html前端网站开发建设银行支行网站
  • 网站建设 教程外贸自建站可以自己做网站吗
  • 扁平化设计个人网站wordpress文章发布编辑器
  • 东莞网站设计建设公司南京建设网站的公司
  • 网站建设网络推广文章门户网站源码入驻
  • 杂志社网站建设方案书各类网站规划
  • 网站集约化建设的好处专做艺术圈的网站
  • 网站是什么样的wordpress能用手机端
  • 大型网站 divphp+mysql网站开发全程实例.pdf
  • 通过网站如何做海外贸易做网站没什么用啊老师别人强
  • 河北建设局网站首页手机网站怎么推广
  • 合肥模板网站建设软件计算机网站开发与应用
  • 沈阳市建设工程信息网站深圳注册公司需要多少钱
  • 政法网站内容建设信息图表设计网站
  • 东莞网站网络推广公司张雪峰谈电子商务
  • 公司网站建设价位学程序员需要什么基础
  • 什么网站可以帮人做ppt赚钱页面模板 wordpress
  • 闵行网站设计wordpress 不收录设置
  • 进行网站开发 如何搭建环境河北省承德市兴隆县建设局网站
  • 网站规划与设计期末大作业怎么做wordpress 轮播