自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

泷泷养的乔小胖

只为技术代言

  • 博客(279)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 资本的时代,普通人想逆袭有多难?

股市对于普通人来讲,是最适合普通人实现财富自由的理想途径。同事投资也开启了我看人生的另一种视角。我为什么这么渴望财务自由?不是我追求奢华的物质享受,而是我想要独立、自由的生活,我想让我自己的人生有更多的选择,同时为家人提供竟可能的好的生活条件。回顾自己的投资生涯,挫折,迷茫,低迷,煎熬,失意,失望一路伴随而行,但从未有过放弃投资的年头。我一直相信,读书改变命运,投资照亮人生,在理想实现,目标达成以前,我不放弃。这既有性格的原因,也是对美好生活的不懈追求。无数的投资人都有自己的看法与感慨,今天我就谈谈我对投资

2021-07-12 18:52:09 394

原创 10.4 Trie字典树前缀查询

10.4 Trie字典树前缀查询(1) Trie字典树的Java语言实现案例// 在Trie树中查找是否存在某个prefix前缀的单词,即实现前缀树public boolean isPrefix(String prefix)package com.wwl.trie;import java.util.TreeMap;/*** Trie树性能高于BST(二分搜索树)* Trie时间复杂度:O(w) 与单词长度有关* BST时间复杂度:O(logn) 与存储的数...

2020-05-30 14:12:27 496

原创 10.5 Trie字典树和简单模式匹配

10.5 Trie字典树和简单模式匹配Tip:本博客内容是通过学习慕课网bobo老师视频做的笔记总结,不用于任何商业用途,只用于帮助更多技术爱好者。(1) Leetcode题目(添加与搜索单词 - 数据结构设计第211号题目)https://leetcode-cn.com/problemset/all/?search=211设计一个支持以下两种操作的数据结构:void addWord(word)bool search(word)search(word)可以搜索...

2020-05-24 23:09:19 547 1

原创 10.3 Trie字典树查询

10.3 Trie字典树查询Tip:本博客内容是通过学习慕课网bobo老师视频做的笔记总结,不用于任何商业用途,只用于帮助更多技术爱好者。(1) Trie字典树的Java语言实现案例// 判断Trie树中是否存在某个单词public boolean contains(String word)package com.wwl.trie;import java.util.TreeMap;/*** Trie树性能高于BST(二分搜索树)* Trie时间复杂度:O(w..

2020-05-24 22:25:21 230

原创 10.2 Trie字典树基础

10.2 Trie字典树基础Tip:本博客内容是通过学习慕课网bobo老师视频做的笔记总结,不用于任何商业用途,只用于帮助更多技术爱好者。(1) Trie字典树的Java语言实现案例package com.wwl.trie;import java.util.TreeMap;public class Trie { private class Node { private boolean isWord; private TreeMap<Cha

2020-05-24 16:04:55 202

原创 10. 什么是Trie字典树

10.1 什么是Trie字典树Tip:本博客内容是通过学习慕课网bobo老师视频做的笔记总结,不用于任何商业用途,只用于帮助更多技术爱好者。(1) 背景发生在微软的一个真实案例:在一个古老的手持设备中实现一个通讯录功能,但是当时的手持设备的芯片运算能力是非常低的,所以他们发现当通讯录中记录的条目非常多的时候,搜索通讯录中的内容是非常慢的。但是这个问题是被微软的一个实习生解决了。其实他解决的方式非常简单,他就是使用了这种Trie数据结构来解决的。(2) 什么是Trie树..

2020-05-24 15:59:04 306

原创 MySQL基础之多表关联查询

2.7 多表关联查询我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。你可以在 SELECT , UPDATE 和 DELETE 语句中使用 MySQL 的 JOIN 来联合多表查询。JOIN 按照功能大致分为如下三类:CROSS JOIN (交叉连...

2019-09-29 00:22:48 354

原创 MySQL基础之多表之间的关系

2.6 多表之间的关系如上图所示,实际业务数据库中的表之间都是有关系的,我们接下来主要要学习的就是如何分析表关系及建立表关系。1)分类表create table category(cid varchar(32) primary key,cname varchar(100));2)商品表create table product(pid varchar(3...

2019-09-29 00:18:23 407

原创 MySQL基础之SQL解析顺序

2.5 SQL解析顺序接下来再走一步,让我们看看一条SQL语句的前世今生。首先看一下示例语句:SELECT DISTINCT< select_list >FROM< left_table > < join_type >JOIN < right_table > ON < join_condition >WHE...

2019-09-29 00:08:06 505

原创 MySQL基础之DML语句

2.4 DQL语句2.4.1 准备工作创建商品表:案例演示:#商品表CREATE TABLE product ( pid INT PRIMARY KEY AUTO_INCREMENT, # 自增加 AUTO_INCREMENT pname VARCHAR(20),#商品名称 price DOUBLE, #商品价格 ...

2019-09-28 23:43:01 298

原创 MySQL基础之DDL语句

2.2 DDL语句2.2.1 数据库操作:database2.2.1.1 创建数据库create database 数据库名;create database 数据库名 character set 字符集;2.2.1.2 查看数据库查看数据库服务器中的所有的数据库:show databases;查看某个数据库的定义的信息:show create databa...

2019-09-26 21:57:29 189

原创 MySQL基础之MySQL单机安装

2、MySQL基础2.1 MySQL单机安装操作系统:CentOS 7MySQL:5.62.1.1 MySQL卸载1)查看MySQL软件rpm -qa|grep mysqlyum repolist all | grep mysql2)卸载MySQLyum remove -y mysql mysql-libs mysql-common #卸载mysql...

2019-09-26 21:45:36 323

原创 什么SQL及SQL语言分类

1.3 SQL介绍1.3.1 什么是SQL【SQL是Structured Query Language的缩写】,它的前身是著名的关系数据库原型系统System R所采用的SEQUEL语言。作为一种访问【关系型数据库的标准语言】,SQL自问世以来得到了广泛的应用,不仅是著名的大型商用数据库产品Oracle、DB2、Sybase、SQL Server支持它,很多开源的数据库产品如Postgre...

2019-09-26 21:35:20 489

原创 MySQL是什么及发展历程

1.2 MySQL是什么及发展历程1.2.1 MySQL是什么 MySQL 是最流行的【关系型数据库管理系统】,在WEB应用方面 MySQL是最好的RDBMS应用软件之一。1.2.2 MySQL发展历程- MySQL的历史可以追溯到1979年,一个名为Monty Widenius的程序员在为TcX的小公司打工,并且用BASIC设计了一个报表工具,使其可以在4MH...

2019-09-26 21:30:20 1521

原创 MySQL介绍之数据库概述

1、MySQL介绍之数据库概述1.1 数据库概述1.1.1 什么是数据库 数据库就是[存储数据的仓库],其本质是一个[文件系统],数据按照特定的格式将数据存储起来,用户可以通过SQL对数据库中的数据进行增加,修改,删除及查询操作。1.1.2什么是关系型数据库 数据库中的[记录是有行有列的]就是关系型数据库,与之相反的就是NoSQL数据库了。...

2019-09-26 21:24:54 158

原创 分布式消息系统kafka集群搭建

2.3 Kafka集群搭建 在生产环境为了避免单点问题,Kafka一般都是以集群的方式出现的。下面要搭建一个Kafka集群,包含三个Kafka主机,即三个Broker。2.3.1 Kafka的下载2.3.2 安装并配置第一台主机(1)上传并解压 将下载好的Kafka压缩包上传至CentOS虚拟机,并解压。(2)创建软链接(3)修改配...

2019-09-18 12:59:39 194

原创 分布式消息系统kafka工作原理与过程

2、Kafka工作原理与过程2.1 Kafka基本术语 对于Kafka基本原理介绍,可以通过以下基本术语进行基本介绍。2.1.1 Topic 主题。在Kafka中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为topic。Topic相当于分类的标签,是一个逻辑概念。2.1.2 Partition 分区。Topic中的...

2019-09-18 09:03:38 391

原创 分布式消息系统kafka概述

1、kafka概述1.1 kafka简介 Apache Kafka是一个快速的、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统,使用Scala和java语言编写,能够将消息从一个端点传递到另一个端点,较之传统的中间件(例如:ActiveMQ、RabbitMQ),Kafka具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序。 ...

2019-09-18 08:40:19 371

原创 Redis IO多路复用技术及epoll实现原理

10、Redis IO多路复用技术以及epoll实现原理 Redis是一个单线程的但性能是非常好的内存数据库,主要用来作为缓存系统。Redis采用网络IO多路复用技术来保证在多连接的时候,系统吞吐量高。10.1 为什么Redis要使用IO多路复用 首先,Redis是跑在单线程中的,所有的操作都是顺序线性执行的,但是由于读写操作等待用户输入或者输出都是阻塞的,所以...

2019-09-17 22:38:39 4830

原创 漫谈4种IO模型

9、漫谈4种IO模型9.1 高性能IO模型浅析 服务端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型; (2)同步非阻塞IO(Non Blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意:这里所说的NIO并非j...

2019-09-17 12:50:05 378

原创 IO设计模式之Reactor和Proactor模式

8、IO设计模式之Reactor和Proactor8.1 反应器Reactor模式8.1.1 概述 反应器模式(Reactor Pattern)是一种为处理并发服务请求并将请求提交到一个或者多个服务处理程序的事件设计模式。当客户端请求到达时,服务处理程序使用多路分配策略,由一个非阻塞线程来接收所有请求,然后派发这些请求至相关的工作线程进行处理。 Reacto...

2019-09-15 15:37:44 399

原创 阻塞IO和非阻塞IO

7、阻塞IO和非阻塞IO 阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。 阻塞IO和非阻塞IO指的是用户空间和内核空间的IO操作: 阻塞IO:用户空间通过系统调用(systemcall)和内核空间发送IO操作时,该调用时需要等待; 非阻塞IO:用户空间通过系统调用(sys...

2019-09-13 19:23:17 529

原创 同步IO和异步IO

6、同步IO和异步IO 同步和异步是针对应用程序和内核交互而言,同步是指用户出发IO操作并等待或者轮询的去查看IO操作是否就绪;而异步是指用户进程出发IO操作以后便开始做自己的事情,而当IO操作完成后,会异步通知用户进程。 同步IO和异步IO指的是用户空间和内核空间数据交互的方式: 同步IO:用户空间需要的数据,必须要等到内核空间给它之后...

2019-09-13 19:20:34 262

原创 Socket网络编程

5、Socket网络编程5.1 客户端5.1.1 SocketClientpackage com.pingan.maam.server.socket;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;public class SocketClient { pu...

2019-09-13 19:13:03 331

原创 磁盘IO和网络IO

4、IO访问方式4.1 磁盘IO具体步骤: 当应用程序调用read接口时,操作系统检查内核缓冲区中是否存在需要的数据,如果存在,就直接从内核缓存中直接返回,否则从磁盘中读取,然后缓存至操作系统的缓存中。 当应用程序调用write接口时,将数据直接从用户地址空间复制到内核地址空间的缓存中,这时对用户程序来说,写操作已经完成了,至于什么时候写入磁盘中,...

2019-09-13 16:12:57 4860 2

原创 缓存IO和直接IO

3、缓存IO和直接IO缓存IO:数据先从磁盘通过DMA copy到内核空间,再从内核空间copy到用户空间。直接IO:数据直接从磁盘通过DMA copy到用户空间。3.1 缓存IO 缓存IO又被称为标准的I/O,大多数文件系统的默认I/O操作都是缓存IO。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后再从内核空间的缓冲区复制到应用程序的地...

2019-09-13 11:26:40 2573

原创 PIO(编程输入/输出模型)和DAM(直接访问内存)

2、PIO(编程输入/输出模型)和DAM(直接访问内存) 有必要简单地说下慢速I/O与内存之间的传输方式。PIO:我们拿磁盘来说,很早之前,磁盘和内存之间的数据传输是需要CPU控制的,也就是说,如果我们读取磁盘文件到内存中,数据时需要经过CPU存储转发,这种方式称为PIO。显然这种方式是不合理的,因为它需要占用大量的CPU时间来读取文件,造成文件访问时系统几乎停止响应。...

2019-09-13 11:12:02 1699

原创 用户空间和内核空间

1、用户空间和内核空间学习Linux时,经常看到两个词:User space(用户空间),Kernel space(内核空间)。简单的说,Kernel space是Linux内核运行的空间,User space是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。虚拟内存被操作系统分为两块:内核空间和用户空间,内核空间是内核代码运行的地方,用户空间是...

2019-09-13 11:07:25 470

原创 Zookeeper技术内幕之Curator客户端

4、Zookeeper技术内幕之Curator客户端4.4 Curator客户端4.4.1 简介 Curator是Netflix公司开源的一套zk客户端开源框架,与ZkClient一样,其也封装了zk原生的API。其目前已经成为Apache顶级项目。同时,Curator还提供了一套易用性、可读性更强的Fluent风格的客户端API框架。4.4.2 API介绍...

2019-09-05 14:08:48 811

原创 Zookeeper技术内幕之ZkClient客户端

4、Zookeeper技术内幕之ZkClient客户端4.3 ZkClient客户端4.3.1 简介 Zkclient是一个开源的客户端,在Zookeeper原生API接口的基础上进行了包装,更便于开发人员使用。内部实现了Session超时重连,Watcher反复注册等功能。就像Dubbo框架对其他也进行了集成。4.3.2 API介绍 以下API方...

2019-09-05 11:26:29 210

原创 Zookeeper技术内幕之客户端命令

4、Zookeeper技术内幕之客户端命令4.2 客户端命令4.2.1 启动客户端(1)连接本机zk服务器(2)连接其他zk服务器4.2.2 查看子节点-ls 查看根节点/brokers节点下所包含的所有子节点列表:4..2.3 创建节点-create(1)创建永久节点 创建一个名字为china的节点,其值为...

2019-09-05 10:55:58 134

原创 Zookeeper技术内幕之重要理论

4、Zookeeper技术内幕之重要理论4.1 重要理论4.1.1 数据模型znode 红色表示根节点,蓝色表示父节点,绿色表示叶子节点。 zk数据存储结构与标准的Unix文件系统非常相似,都是在根节点下挂很多子节点。zk中没有引入传统文件系统中目录与文件的概念,而是使用了称为znode的数据节点概念。znode是zk中数据的最小单元,每个znode上都...

2019-09-05 10:38:40 170

原创 Zookeeper高可用集群的容灾

2、Zookeeper高可用集群的容灾2.1 服务器数量的奇数与偶数 无论是写操作投票,还是Leader选举投票,都必须过半才能通过,也就是说若出现超过半数的主机宕机,则永远无法通过。基于该理论,由3台主机构成的集群最多允许1台宕机,由5台主机构成的集群最多允许2台宕机,由6台主机构成的集群最多也是允许2台宕机。即5台和6台主机构成的集群容灾能力是一样的。 ...

2019-09-03 11:14:14 2128

原创 Zookeeper理论基础之CAP定理

1、Zookeeper理论基础之CAP定理1.5 CAP定理1.5.1 简介 CAP原则又称为CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。 一致性(C):分布式系统中多个主机之间是否能够保持数据一致性的特性。即当系统数据发生更新...

2019-09-02 11:03:11 7147

原创 Zookeeper理论基础之ZAB协议

1、zookeeper理论基础1.4 ZAB协议1.4.1 ZAB协议简介 ZAB,Zookeeper Atomic Broadcast,zk原子广播协议,是专为Zookeeper设计的一种支持崩溃恢复的原子广播协议。在Zookeeper中,主要是依赖于ZAB协议来实现分布式数据一致性。 Zookeeper使用一个单一主进程来接受和处理客户端所有事务请求,即...

2019-09-02 10:57:06 308

原创 Zookeeper理论基础之Paxos算法

1、Zookeeper理论基础1.3 Paxos算法 对于zk的学习,最重要的也是最难的就是Paxos算法学习。所以首先我们需要学习Paxos算法。1.3.1 算法简介 Paxos算法是莱斯利.兰伯特1990年提出的一种基于消息传递的、具有高容错性的一致性算法。Google Chubby的作者Mike Burrows说过,世上只有一种一致性算法,那就是Pax...

2019-08-31 16:01:30 480

原创 Zookeeper理论基础之zk含义及如何保证一致性

1、Zookeeper理论基础1.1、Zookeeper含义 Zookeeper是一个分布式协调应用程序服务器,其为分布式系统提供一致性服务。其一致性是通过Paxos算法的ZAB协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。下图是官网解释:1.2、zookeeper如何保证一致性 zk是如何保证分布式系统一致性呢?是因为zk...

2019-08-31 15:42:03 3180 2

原创 Mysql隔离性之Read View

Mysql隔离性之Read View当前事务能读取到哪个历史版本?Read View是事务开启时,当前所有事务的一个集合,这个数据结构中存储了当前Read View中最大的ID及最小的ID。这就是当前活跃事务列表,如下所示:ct-trx --> trx11 --> trx9 --> trx6 --> trx5 --> trx3;ct-t...

2019-08-08 15:29:34 15913 2

原创 Mysql隔离性之事务链表

Mysql隔离性之事务链表Mysql中的事务在开始到提交过程中,都会被保存到一个叫trx_sys链表中,这是一个基本链表结构:ct-trxàtrx11àtrx9àtrx6àtrx5àtrx3事务链表中保存的都是还未提交的事务,事务一旦被提交,则会从事务链表中摘除。RR隔离级别下,在每个事务开始的时候,会将当前系统中所有活跃事务拷贝到一个列表中(read view)RC隔离级别下...

2019-08-08 15:25:56 513

原创 Mysql隔离性之Undo Log

Mysql隔离性之Undo LogInnoDB行记录有三个隐藏字段:分别对应的行的rowid、事务号db_trx_id和回滚指针db_roll_ptr,其中db_trx_id表示最近修改的事务的id,db_roll_ptr指向回滚段中的undo log。根据行为不同,可以分为两种:insert undo log 和 update undo loginsert undo log:...

2019-08-08 15:23:46 734

阿里巴巴Java开发手册

阿里巴巴Java开发手册.pdf:描述Java开发规范。 喜欢的朋友给一个积分即可。 喜欢的老铁给一个积分即可。 come on!come on!

2017-03-07

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

TA关注的人

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