Redisson -.Java用来控制redis的各种各样的工具的集合_戴**的博客-程序员秘密

技术标签: redis  

Redisson 实现了juc的lock锁,并且可以在分布式的redis环境下使用

首先是要引入pom

       <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.10.5</version>
        </dependency>

然后添加一个配置文件

@Configuration
public class GmallRedissonConfig {
    

    @Value("${spring.redis.host:0}")
    private String host;

    @Value("${spring.redis.port:6379}")
    private String port;

    @Bean
    public RedissonClient redissonClient(){
    
        Config config = new Config();
        config.useSingleServer().setAddress("redis://"+host+":"+port);
        RedissonClient redisson = Redisson.create(config);
        return redisson;
    }
}

最后用rlock实现加锁

@Controller
public class RedissonController {
    

    @Autowired
    RedisUtil redisUtil;

    @Autowired
    RedissonClient redissonClient;

    @RequestMapping("testRedisson")
    @ResponseBody
    public String testRedisson(){
    
        Jedis jedis = redisUtil.getJedis();
        RLock lock = redissonClient.getLock("lock");// 声明锁
        lock.lock();//上锁
        try {
    
            String v = jedis.get("k");
            if (StringUtils.isBlank(v)) {
    
                v = "1";
            }
            System.out.println("->" + v);
            jedis.set("k", (Integer.parseInt(v) + 1) + "");
        }finally {
    
            jedis.close();
            lock.unlock();// 解锁
        }
        return "success";
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39992641/article/details/104255359

智能推荐

Qt MSVC与MinGW的区别_qt mingw和msvc_蝈蝈(GuoGuo)的博客-程序员秘密

当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。

比较JDBC和Mybatis进行批处理时的性能比较_jdbc查询比mybatis_JdbcUtils的博客-程序员秘密

执行批量操作时,做了个比较Mybatis和JDBC执行时间的记录,JDBC还是强大太多了!jdbc.properties文件jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;amp;characterEncoding=utf8&amp;amp;allowMultiQueries=true&amp;amp;rewriteBatchedSt...

Ansible playbook简单示例_程裕强的博客-程序员秘密

1、 YAML基本语法YAML使用的Unicode字符。使用空白字符未文件缩排来表示结构;不过不能使用跳格字符。注解由#开始,可以出现在一行中的任何位置,而且范围只有一行(也就是一般所谓的单行注解)每个清单成员以单行表示,并用短杠+空白( - )起始。或使用方括号( [ ] ),并用逗号+空白( , )分开成员。每个杂凑表的成员用冒号+空白( : )分开键值和内容。或使用大括号( { }

Linux下QT中用C链接MYSQL库_linuxqt 连接mysqlc语言_寒暑一行的博客-程序员秘密

在linux下使用mysql,用的是qt开发环境。因为其它原因不能使用C++,只能使用C,所以不能使用QT中的数据库组件,只能使用C 语言链接到MYSQL。直接把libmysqlclient.a添加到项目中不行,在qmake的附加编译选项中增加 -lmysqlclient也不行。最后发现在项目的右键菜单中有【添加库】的选项,然后选择【外部库】,把/usr/lib/i386-linu

cv2.dnn读取模型报错原因归纳_zicai_jiayou的博客-程序员秘密

问题1:读取onnx出现报错“error: (-210:Unsupported format or combination of formats) Failed to parse onnx model in function 'ONNXImporter'”出现这个原因网上有挺多种解答,但是首先先检查onnx文件路径是否填写正确。问题2:读取onnx出现报错“error: (-2:Unspecified error) Can't create layer "317" of type "Clip".

随便推点

推荐系统---深度学习在电商商品推荐当中的应用_小丁丁_ddxdd的博客-程序员秘密

来源:1.常见算法套路电商行业中,对于用户的商品推荐一直是一个非常热门而且重要的话题,有很多比较成熟的方法,但是也各有利弊,大致如下:基于商品相似度:比如食物A和食物B,对于它们价格、味道、保质期、品牌等维度,可以计算它们的相似程度,可以想象,我买了包子,很有可能顺路带一盒水饺回家。优点:冷启动,其实只要你有商品的数据,在业务初期用户数据不多的情况下,也

基于python的多因子分析_python多因子回归分析_尤尔小屋的猫的博客-程序员秘密

公众号:尤而小屋作者:Peter编辑:Peter大家好,我是Peter~最近看了很多的关于因子分析的资料,整理出这篇理论+实战文章分享给大家。后续会出一篇PCA主成分分析的文章,将主成分分析和因子分析两种降维的方法进行对比。因子分析作为多元统计分析里的降维方法之一,因子分析可以应用于多个场景,如调研、数据建模等场景之中。起源因子分析的起源是这样的:1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后有一个共同的因素驱动,最后将这个因素定义为“语言.

文件系统的各指标计算方法(参考df和sar)_不闻窗外事的博客-程序员秘密

df的基本打印信息如下:文件系统 1K-块 已用 可用 已用% 挂载点udev 10240 0 10240 0% /devtmpfs 26371504 323096 26048408 2% /run/dev/sda1 47929224 66...

Unity3D游戏制作学习记录03——丛林战争_橘猫吸薄荷的博客-程序员秘密

Unity3D游戏制作学习记录03——丛林战争Siki学院的视频教程指路牌:http://www.sikiedu.com/course/61.粘包和分包粘包我们要发送出去的数据成为包,当我们发送的数据包很小,发送间隔又很短的时候,这对于性能的消耗是很大的,Socket就会自动优化,把这些数据组合起来作为一条消息发送到服务器端。出现的情况一般是在大型网络游戏中,要一直更新定位,血量等等的数据,就很容易出现粘包的问题了。分包当我们发送的数据包很大的时候,Socket就会把包分开去传输。一方面,如果

Python selenium 自动化测试 --3 -- WebDriver的常用方法_三寸季年不忘卿的博客-程序员秘密

点击和输入 clear():清除元素 send_keys(value):模拟按键输入 click():单击元素 from selenium import webdriver driver = webdriver.Chrome()#先进入网址url = "http://www.baidu.com"driver.get(url)#定位到 输入框 kwinput_textElement = driver.find_element_by_id("kw") #清空输入框的内容in

Web API 版本控制的几种方式_横云断岭的博客-程序员秘密

http://www.troyhunt.com/2014/02/your-api-versioning-is-wrong-which-is.html这篇文章写得很好,介绍了三种实现web api版本化的三种方式。我从评论里又收集到两种方式,所以一共是5种:方式一:利用URL HTTP GET:https://haveibeenpwned.com/api/v2/breacheda...

推荐文章

热门文章

相关标签