- 商品和订单服务间使用MQ 商品服务的库存变化时,通过 MQ 通知订单服务库存变化。 原始的同步流程 查询商品信息 (调用商品服务)计算总价(生成订单详情)商品服务扣库存(调用商品服务)订单入库( 生成订单) // 原始的MySQL同步流程 // 判断此代金券是否加入抢购 SeckillVouchers seckillVouchers = seckillVouch... 商品和订单服务间使用MQ 商品服务的库存变化时,通过 MQ 通知订单服务库存变化。 原始的同步流程 查询商品信息 (调用商品服务)计算总价(生成订单详情)商品服务扣库存(调用商品服务)订单入库( 生成订单) // 原始的MySQL同步流程 // 判断此代金券是否加入抢购 SeckillVouchers seckillVouchers = seckillVouch...
- 但是仍然有些场景是不满⾜的,例如⼀ 个⽅法获取到锁之后,可能在⽅法内调这个⽅法此时就获取不到锁了。这个时候我们就需要把锁改进成可 重⼊锁了。 重⼊锁,指的是以线程为单位,当⼀个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,⽽其 他的线程是不可以的。可重⼊锁的意义在于防⽌死锁。 实现原理是通过为每个锁关联⼀个请求计数器和⼀个占有它的线程。当计数为 0 时,认为锁是... 但是仍然有些场景是不满⾜的,例如⼀ 个⽅法获取到锁之后,可能在⽅法内调这个⽅法此时就获取不到锁了。这个时候我们就需要把锁改进成可 重⼊锁了。 重⼊锁,指的是以线程为单位,当⼀个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,⽽其 他的线程是不可以的。可重⼊锁的意义在于防⽌死锁。 实现原理是通过为每个锁关联⼀个请求计数器和⼀个占有它的线程。当计数为 0 时,认为锁是...
- 前言 上一篇文章我们介绍了字典这个数据结构,这一篇文章我们接着来学习下另外一个数据结构,跳表。那么什么是跳表呢? 跳表的基本概念 跳表是一种有序的数据结构,它通过在每个节点中维持多个指向其他的节点指针,从而达到快速访问队尾的目的。 这么说是不是感觉有点云里雾里呢?那么我们详细解释下这个概念。 想象一下,对于一个单链表,如果我们要查找单链表中的某个结点,我们该怎么做... 前言 上一篇文章我们介绍了字典这个数据结构,这一篇文章我们接着来学习下另外一个数据结构,跳表。那么什么是跳表呢? 跳表的基本概念 跳表是一种有序的数据结构,它通过在每个节点中维持多个指向其他的节点指针,从而达到快速访问队尾的目的。 这么说是不是感觉有点云里雾里呢?那么我们详细解释下这个概念。 想象一下,对于一个单链表,如果我们要查找单链表中的某个结点,我们该怎么做...
- 前言 上一篇我们介绍了Redis的持久化,这一篇我们接着来学习Redis的事务。将从如下几个方面进行阐述,事务的介绍,Redis事务的介绍,Redis事务与数据库事务的区别。 事务 何为事务呢?我的理解是事务是一种机制,是一个不可分割的工作单元,要么都执行,要么都不执行。其具有如下四个特性: 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单元,... 前言 上一篇我们介绍了Redis的持久化,这一篇我们接着来学习Redis的事务。将从如下几个方面进行阐述,事务的介绍,Redis事务的介绍,Redis事务与数据库事务的区别。 事务 何为事务呢?我的理解是事务是一种机制,是一个不可分割的工作单元,要么都执行,要么都不执行。其具有如下四个特性: 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单元,...
- 文章目录 前言基础介绍默认参数的设置主要类的说明 操作session(生成session,保存session等过程)的时序图1. 调用的入口还是SessionRepositoryFilter类(PS:Spring是通过责任链的模式来执行每个过滤器的)的doFilterInternal方法。2. SessionRepositoryRequestWrapper类的g... 文章目录 前言基础介绍默认参数的设置主要类的说明 操作session(生成session,保存session等过程)的时序图1. 调用的入口还是SessionRepositoryFilter类(PS:Spring是通过责任链的模式来执行每个过滤器的)的doFilterInternal方法。2. SessionRepositoryRequestWrapper类的g...
- 前言 上一篇我们介绍了Redis06-Redis的数据库与键空间,这一篇我们介绍一下Redis数据库中如何给键设置过期时间,以及过期键删除策略。 键的过期时间如何设置? 在Redis中我们可以通过四个不同的命令来给键设置过期时间,分别是: EXPIRE <key> <ttl> 命令用于将键key的生存时间设置成ttl秒。(TTL的意思是 ... 前言 上一篇我们介绍了Redis06-Redis的数据库与键空间,这一篇我们介绍一下Redis数据库中如何给键设置过期时间,以及过期键删除策略。 键的过期时间如何设置? 在Redis中我们可以通过四个不同的命令来给键设置过期时间,分别是: EXPIRE <key> <ttl> 命令用于将键key的生存时间设置成ttl秒。(TTL的意思是 ...
- 前言 上一篇我们介绍了SpringSession中Session的保存过程,今天我们接着来看看Session的读取过程。相对保存过程,读取过程相对比较简单。 本文想从源码的角度,详细介绍一下Session的读取过程。 读取过程的时序图 如上,是读取Session的时序图,首先代码入口还是SessionRepositoryFilter过滤器的doFilterInt... 前言 上一篇我们介绍了SpringSession中Session的保存过程,今天我们接着来看看Session的读取过程。相对保存过程,读取过程相对比较简单。 本文想从源码的角度,详细介绍一下Session的读取过程。 读取过程的时序图 如上,是读取Session的时序图,首先代码入口还是SessionRepositoryFilter过滤器的doFilterInt...
- 前言 前面我们介绍了Redis数据库以及键空间。这一篇我们继续介绍一下Redis的持久化。Redis持久化的方式有两种,一种是RDB的方式,一种是AOF的方式。 RDB的方式 RDB是Redis DataBase的缩写。是Redis默认的持久化方式,它按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件是dump.rdb。通过配置文件中的save... 前言 前面我们介绍了Redis数据库以及键空间。这一篇我们继续介绍一下Redis的持久化。Redis持久化的方式有两种,一种是RDB的方式,一种是AOF的方式。 RDB的方式 RDB是Redis DataBase的缩写。是Redis默认的持久化方式,它按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件是dump.rdb。通过配置文件中的save...
- 前言 前面我们介绍了Redis的五种数据结构,这一篇我们换一个角度,让我们来看看Redis服务器的数据库。单个Redis服务器默认会创建16个数据库,数据库之间的数据是相互隔离的。默认的话使用的是0库。 数据库 Redis服务器将所有数据库都保存在服务器状态 redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redis... 前言 前面我们介绍了Redis的五种数据结构,这一篇我们换一个角度,让我们来看看Redis服务器的数据库。单个Redis服务器默认会创建16个数据库,数据库之间的数据是相互隔离的。默认的话使用的是0库。 数据库 Redis服务器将所有数据库都保存在服务器状态 redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redis...
- 您好,我是码农飞哥,感谢您阅读本文!最近在进行框架改造,历史遗留代码对Redis的使用不当,导致了一些问题。 问题描述 org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframewor... 您好,我是码农飞哥,感谢您阅读本文!最近在进行框架改造,历史遗留代码对Redis的使用不当,导致了一些问题。 问题描述 org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframewor...
- 前言 周末被社会的皮鞭狠狠的抽打了几下。人微言轻,为生计奔波,劳碌一生。富则妻妾成群,穷则孤独一生。个人牢骚。今天接着来学习Redis的第三篇,字典的数据结构。字典的数据结构其实完全可以类比Java中的HashMap数据结构,两者都是哈希表。 字典 简介说明 字典,又称为符号表 ,关联数组或映射。是一种用于保存键值对(key-value pair)的抽象数据结构... 前言 周末被社会的皮鞭狠狠的抽打了几下。人微言轻,为生计奔波,劳碌一生。富则妻妾成群,穷则孤独一生。个人牢骚。今天接着来学习Redis的第三篇,字典的数据结构。字典的数据结构其实完全可以类比Java中的HashMap数据结构,两者都是哈希表。 字典 简介说明 字典,又称为符号表 ,关联数组或映射。是一种用于保存键值对(key-value pair)的抽象数据结构...
- 本周热议,本周发表并且评论最多的文章排行,如果直接查询数据库的话很快就可以实现,只需要限定一下文章创建时间,然后根据评论数量倒叙取前几篇即可搞定。 但这里我们使用redis来完成。之前上课时候我们说过,排行榜功能,我们可以使用redis的有序集合zset来完成。现在我们就这个数据结构来完成本周热议的功能。 在编码之前,我们需要先来回顾一下zset的几个基本命令。 ... 本周热议,本周发表并且评论最多的文章排行,如果直接查询数据库的话很快就可以实现,只需要限定一下文章创建时间,然后根据评论数量倒叙取前几篇即可搞定。 但这里我们使用redis来完成。之前上课时候我们说过,排行榜功能,我们可以使用redis的有序集合zset来完成。现在我们就这个数据结构来完成本周热议的功能。 在编码之前,我们需要先来回顾一下zset的几个基本命令。 ...
- 前言 Redis用了这么久,一直没有认真的去了解其内部的数据结构和实现原理。从今天开始正式系统性的学习Redis。首先,还是从工作中经常打交道的数据类型开始说起,然后,在说到其内部使用的数据结构。 Redis的简介 Redis是一个开源的高性能的key-value数据库,与其他的key-value缓存产品相比有以下三个特点: Redis支持数据的持久化,可以将内... 前言 Redis用了这么久,一直没有认真的去了解其内部的数据结构和实现原理。从今天开始正式系统性的学习Redis。首先,还是从工作中经常打交道的数据类型开始说起,然后,在说到其内部使用的数据结构。 Redis的简介 Redis是一个开源的高性能的key-value数据库,与其他的key-value缓存产品相比有以下三个特点: Redis支持数据的持久化,可以将内...
- 前言 上一篇文章我们学习了Redis的数据结构之简单动态字符串,这一篇我们接着来学习Redis中另外一个数据结构-链表。链表有很多种,首先,本文会首先回顾一下一些常见的链表,接着就是介绍Redis中的链表的结构。 链表回顾 链表和数组 数组时需要一块连续的内存空间来存储的,而链表值需要零散的内存碎片,数组的插入和删除的时间复杂度是0(n),查询的某个元素的时间复... 前言 上一篇文章我们学习了Redis的数据结构之简单动态字符串,这一篇我们接着来学习Redis中另外一个数据结构-链表。链表有很多种,首先,本文会首先回顾一下一些常见的链表,接着就是介绍Redis中的链表的结构。 链表回顾 链表和数组 数组时需要一块连续的内存空间来存储的,而链表值需要零散的内存碎片,数组的插入和删除的时间复杂度是0(n),查询的某个元素的时间复...
- 前言 前面我们学习了Redis04-Redis的数据结构之跳表,跳表这种数据结构,这篇我文章我们来学习另外一种数据结构----整数集合。 整数集合的概念 当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现,它可以保存的类型为int16_t、int32_t或者int64_t的整数值,集合中不允许有重复元素,Red... 前言 前面我们学习了Redis04-Redis的数据结构之跳表,跳表这种数据结构,这篇我文章我们来学习另外一种数据结构----整数集合。 整数集合的概念 当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现,它可以保存的类型为int16_t、int32_t或者int64_t的整数值,集合中不允许有重复元素,Red...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签