技术标签: 锁 spring boot redisson 分布式 springboot redis
https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter#spring-boot-starter
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.13.1</version>
</dependency>
<!-- redisson -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.13.1</version>
<exclusions>
<exclusion>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-22</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<!-- for Spring Data Redis v.2.1.x -->
<artifactId>redisson-spring-data-21</artifactId>
<version>3.13.1</version>
</dependency>
<!-- redisson -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.13.1</version>
<exclusions>
<exclusion>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-22</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<!-- for Spring Data Redis v.2.1.x -->
<artifactId>redisson-spring-data-21</artifactId>
<version>3.13.1</version>
</dependency>
<!-- redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:
redis:
redisson:
# 配置单点模式
config: classpath:redisson.yml
jedis:
pool:
max-active: 8 #最大连接数
max-wait: -1 #最大阻塞等待时间(负数表示没限制)
max-idle: 8 #最大空闲
# 单节点配置
singleServerConfig:
# 连接空闲超时,单位:毫秒
idleConnectionTimeout: 10000
# 连接超时,单位:毫秒
connectTimeout: 10000
# 命令等待超时,单位:毫秒
timeout: 3000
# 命令失败重试次数,如果尝试达到 retryAttempts(命令失败重试次数) 仍然不能将命令发送至某个指定的节点时,将抛出错误。
# 如果尝试在此限制之内发送成功,则开始启用 timeout(命令等待超时) 计时。
retryAttempts: 3
# 命令重试发送时间间隔,单位:毫秒
retryInterval: 1500
# # 重新连接时间间隔,单位:毫秒
# reconnectionTimeout: 3000
# # 执行失败最大次数
# failedAttempts: 3
# 密码
password:
# 单个连接最大订阅数量
subscriptionsPerConnection: 5
# 客户端名称
clientName: null
# # 节点地址
address: redis://ip
# 发布和订阅连接的最小空闲连接数
subscriptionConnectionMinimumIdleSize: 1
# 发布和订阅连接池大小
subscriptionConnectionPoolSize: 50
# 最小空闲连接数
connectionMinimumIdleSize: 32
# 连接池大小
connectionPoolSize: 64
# 数据库编号
database: 0
# DNS监测时间间隔,单位:毫秒
dnsMonitoringInterval: 5000
# 线程池数量,默认值: 当前处理核数量 * 2
threads: 0
# Netty线程池数量,默认值: 当前处理核数量 * 2
nettyThreads: 0
# 编码
codec: !<org.redisson.codec.JsonJacksonCodec> {
}
# 传输模式
transportMode : "NIO"
redisson-spring-boot-starter
后@RestController
@RequestMapping("redisson")
public class RedissonController
{
@Autowired
private RedissonClient redissonClient;
@Autowired
private StringRedisTemplate stringRedisTemplate;
private static final String product = "MoonCake";
@RequestMapping("lockAdd")
public void lockAdd() throws Exception
{
//对数据进行加锁
RLock lock = redissonClient.getLock(product);
//加锁
lock.lock();
System.out.println(Thread.currentThread().getName());
String stocks = stringRedisTemplate.opsForValue().get("stock");
int stock = Integer.parseInt(stocks);
if (stock > 0) {
//下单
stock -= 1;
stringRedisTemplate.opsForValue().set("stock", String.valueOf(stock));
System.out.println("扣减成功,库存stock:" + stock);
Thread.sleep(5000);
} else {
//没库存
System.out.println("扣减失败,库存不足");
}
//解锁
lock.unlock();
}
}
论文阅读笔记:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing
OpenStack Object Storage ( Swift ) 是 OpenStack 开源云计算项目的子项目之一。OpenStack Swift 开源项目提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。本文将深入介绍 Swift 的基本设计原理、对称式的系统架构和 RESTful API。 Swift的目的是使用普通硬件来构建冗余的、可扩展的分布式对象存储集群,存储容量可达PB级。
让C++控制台程序停下来,实现暂停功能 一、针对Microsoft #include &lt;stdlib.h&gt; (1)第一种方式 system(
1.变量 -----> 用来存储数据的 语法: 数据类型 变量名 = 值; ----> "jack" jack 1.先声明 ,后赋值 数据类型 变量名; 变量名 = 值;
HTML5播放器细谈,从大众自带浏览器 到 wechat和QQ以x5内核的浏览器,以及UC其他特殊的浏览器在此不再细谈:)当然也会分析iphone iOS系统和Android手机系统的差别。【基本属性】video标签属性:src :视频的属性,url地址poster:视频封面,没有播放时显示的图片preload:预加载|none|metadata(部分预加载)|auto。默
学生问题描述:只写了最简单的导入包,但python一直运行状态,很苦恼电脑出了什么问题...csdn上找到了解决办法,tornado版本问题我看csdn上有个回答,说更新最新版本的ipython,我就pip install ipython==7.0了然后再打开jupyter notebook就什么都没有了也没有办法新建文件了。第二个问题的解答分析原因:首先说第二个问题,根据前面的情况分析,之所以j...
PAGE申报中央财政支持提升专业服务产业发展能力专业建设方案申报学校: 宣化科技职业技术学院申报专业: 计算机网络技术专业建设负责人:刘云章(信息技术系主任)专业建设小组成员:李春霆、郭廷斌、池永胜、崔海涛、张荣河、张兵、张高峰等。2011年10月目 录TOC \o "1-2" \h \z \u 一、建设背景与基础 1(一)建设背景 1(二)建设基础 2二、建设思路与目标 3(一...
Helm v3概念ChartHelm的应用包,采用tgz格式。类似于Yum的RPM包,其包含了一组定义Kubernetes资源相关的YAML文件。也称为应用Chart。RepoistoryHelm的应用仓库,Repository本质上是一个Web服务器,该服务器保存了一系列的Chart应用包以供用户下载,并且提供了一个该Repository的Chart包的清单文件以供查询。Helm可以同时...
原码下载地址:http://download.csdn.net/detail/u012945598/6683161 相信大家在玩游戏的过程中都会遇到一个loading的界面,loading界面的作用主要是为了加载游戏中需要用到的资源。在比较大型的游戏中,资源通常会占用很大的空间,如果不做一个预加载,在切换界面的过程中很容易造成卡屏的现象。今天要讲解的内容便是加载界面中
使用Lightning Aura 画页面效果图如下????cmp代码如下????<aura:component controller="SalesOrderShowPageController" implements="force:appHostable,flexipage:availableForAllPageTypes,forceCommunity:searchInterfac...
tensorflow的所有初始化方法都定义在tensorflow/python/ops/init_ops.py中1、tf.constant_initializer() 也可以简单tf.Constant() 初始化为常数,这个非常有用,通常偏执项就是用它初始化的。 由它衍生出的两个初始化方法: tf.zeros_initializer(),也可以简写为tf.Zeros() tf.one...
Consul下载由于官网下载很慢 https://www.consul.io/downloads.html采用Docker下载docker pull consul安装和运行docker run -d --name consul -p 8500:8500 consul进入容器-- 此处需要用sh执行 因为容器是 alpine 的docker exec -it 镜像id sh...