自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 消息队列高手课1

文章目录一、模型1.RabbitMQ 的消息模型2.RocketMQ 的消息模型3.Kafka同RocketMQ相同二、事务处理三、如何确保消息不会丢失1.检测消息丢失的方法2.确保消息可靠传递四、处理消费过程中的重复消息1.消费端幂等性1). 利用数据库的唯一约束实现幂等2). 为更新的数据设置前置条件3). 记录并检查操作五、消费积压的处理提示:以下是本篇文章正文内容,下面案例可供参考一、模型1.RabbitMQ 的消息模型同一份消息如果需要被多个消费者来消费,需要配置 Exchange 将

2022-05-10 15:28:58 804

原创 MySQL实战:join

文章目录一、Index Nested-Loop Join二、Simple Nested-Loop Join总结假设有这两个表都有一个主键索引 id 和一个索引 a,字段 b 上无索引。存储过程 idata() 往表 t2 里插入了 1000 行数据,在表 t1 里插入的是 100 行数据。一、Index Nested-Loop Joinselect * from t1 straight_join t2 on (t1.a=t2.a);被驱动表 t2 的字段 a 上有索引,join 过程用上了这个索

2022-05-09 14:36:49 458

原创 MySQL实战:没有走索引的情况

文章目录一、条件字段函数操作二、隐式类型转换三、隐式字符编码转换一、条件字段函数操作mysql> select count(*) from tradelog where month(t_modified)=7;如果你的 SQL 语句条件用的是 where t_modified='2018-7-1’的话,引擎就会按照上面绿色箭头的路线,快速定位到 t_modified='2018-7-1’需要的结果。实际上,B+ 树提供的这个快速定位能力,来源于同一层兄弟节点的有序性。但是,如果计算 mo

2022-05-09 14:00:37 416

原创 MySQL实战:order by

文章目录一、执行一、执行建表语句CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `city` (`city`)) ENGINE=InnoDB;order

2022-05-09 11:04:56 160

原创 MySQL实战3:索引

文章目录前言一、主键索引和非主键索引二、覆盖索引三、最左前缀原则四、索引下推前言索引的常见模型:哈希表这种结构适用于只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎。有序数组在等值查询和范围查询场景中的性能就都非常优秀。有序数组索引只适用于静态存储引擎。索引不止存在内存中,还要写到磁盘上。搜索树InnoDB的索引:根据叶子节点的内容,索引类型分为主键索引和非主键索引一、主键索引和非主键索引主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被

2022-05-07 16:20:18 675

原创 MySQL实战2:MVCC事务隔离

文章目录一、隔离性和隔离级别二、隔离的实现 MVCC三、事务的启动一、隔离性和隔离级别ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 I,也就是“隔离性”。当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。在谈隔离级别之前,你首先要

2022-05-07 11:03:56 146

原创 MySQL实战1:基础篇之redo log和bin log

文章目录一、查询语句1.分析器二、使用步骤1.引入库2.读入数据总结一、查询语句1.分析器如果没有命中查询缓存,就要开始真正执行语句了。首先,MySQL 需要知道你要做什么,因此需要对 SQL 语句做解析。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filter

2022-05-07 10:21:39 94

原创 Java并发编程实战10:线程池

文章目录前言一、线程池1.线程池的实现2.ThreadPoolExecutor成员介绍:3.Future1.FutureTask 使用二、异步编程4.CompletableFutureCompletionStage接口1.串行关系2.描述 AND 汇聚关系3. 描述 OR 汇聚关系4. 异常处理前言一、线程池1.线程池的实现// 简化的线程池,仅用来说明工作原理class MyThreadPool{ // 利用阻塞队列实现生产者 - 消费者模式 BlockingQueue<Run

2022-05-05 18:17:52 963

原创 Java并发编程实战9:并发容器和无锁工具类

文章目录一、同步容器二、并发容器1.List2.Map3.Set4.Queue三、原子类无锁方案的实现原理原子类一、同步容器Java 1.5之前,性能比较差,主要通过synchronized来实现List list = Collections. synchronizedList(new ArrayList());Set set = Collections. synchronizedSet(new HashSet());Map map = Collections. synchroniz

2022-05-05 15:58:32 176

原创 Java并发编程实战8:Java并发包

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport

2022-05-05 14:07:14 992

原创 Java并发编程实战5:安全性、活跃性以及性能

文章目录前言一、安全性安全性:程序按照我们期望的执行数据竞争(Data Race):存在共享数据并且该数据会发生变化,通俗地讲就是有多个线程会同时读写同一数据,必须共享会发生变化的数据竞态条件(Race Condition)。所谓竞态条件,指的是程序的执行结果依赖线程执行的顺序。在并发场景中,程序的执行依赖于某个状态变量,也就是类似于下面这样:二、活跃性活锁:有时线程虽然没有发生阻塞,但仍然会存在执行不下去的情况,这就是所谓的“活锁”饥饿:所谓“饥饿”指的是线程因无法访问所需资源而无法执行下去的情况。总结

2022-05-02 23:18:46 758

原创 Java并发编程实战4:等待-通知

文章目录前言一、用 synchronized 实现等待 - 通知机制前言如果线程要求的条件(转出账本和转入账本同在文件架上)不满足,则线程阻塞自己,进入等待状态;当线程要求的条件(转出账本和转入账本同在文件架上)满足后,通知等待的线程重新执行。其中,使用线程阻塞的方式就能避免循环等待消耗 CPU 的问题。一、用 synchronized 实现等待 - 通知机制synchronized 配合 wait()、notify()、notifyAll() 这三个方法。这个等待队列和互斥锁是一对一的关系,每

2022-05-02 22:48:48 474

原创 Java并发编程实战3:互斥锁

文章目录前言一、Java 语言提供的锁技术:synchronized一把锁可以保护多个资源,但是一个资源只能有一把锁来保护二、保护多个资源1.保护多个没有关联关系的资源2.保护有关联关系的多个资源总结前言“同一时刻只有一个线程执行”这个条件非常重要,我们称之为互斥。通过互斥来保证原子性。需要互斥执行的代码称为临界区加锁本质就是在锁对象的对象头中写入当前线程id,但是new object每次在内存中都是新对象,所以加锁无效。一、Java 语言提供的锁技术:synchronizedclass X

2022-05-02 16:12:08 2388

原创 Java并发编程实战2:解决可见性和有序性

文章目录前言一、Happens-Before 规则1.程序的顺序性规则2. volatile 变量规则3.传递性4. 管程中锁的规则5.线程 start() 规则6.线程 join() 规则final 修饰变量时,初衷是告诉编译器:这个变量生而不变,可以可劲儿优化。前言导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化volatile、synchronized 和 final 三个关键字,以及六项 Happens-Before 规则一、Hap

2022-05-02 15:29:28 141

原创 Java并发编程实战学习1

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代.

2022-05-02 15:11:01 433

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除