redis怎么实现分布式事务


当前第2页 返回上一页

方案2的算法中,为了确保在非超时情况下,锁只能由有锁的线程进行释放,可以在value的时间戳中,拼上线程特征码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Long TIMEOUT_SECOUND = 120000L;

    String featureCode = "machine01";

    Jedis client = jedisPool.getResource();

    while(client.setnx("lock",featureCode+":"+String.valueOf(System.currentTimeMillis())) == 0){

        Long lockTime = Long.valueOf(client.get("lock").substring(9));

        if (lockTime!=null && System.currentTimeMillis() > lockTime+TIMEOUT_SECOUND) {

            client.del("lock");

        }

        Thread.sleep(10000);

    }

    ...........................

    ...........................

    if (featureCode.equals(client.get("lock").substring(0, 8))) {

        client.del("lock");

    }

更多Redis相关技术文章,请访问Redis教程栏目进行学习!

以上就是redis怎么实现分布式事务的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

Redis 6.0版本新特性介绍

?Redis的安装与使用

Redis怎么做集群

使用Redis实现一个安全可靠的分布式锁

Redis支持回滚吗

怎么理解Redis

简单易懂地介绍Redis缓存原理

Redis rdb方式数据备份与恢复【详解】

关于Redis事务和pipleline

Redis安装至windows服务

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...