Lerko Blog

快乐Geek

为什么tcp需要三次握手

为什么tcp需要三次握手

TCP握手都做了什么 名词解释 SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) seq Acknowledge number(确认号码) ack 从途中其实我...

Kubernetes 基础架构

Kubernetes 基础架构

基本组成 调用流程 Pods Pods基本定义 Pods生命周期 创建Pods Labels和Selectors labels可以对容器进行标记 ReplicaSet 用于控制副本数量,比如设置副本数量是3个,删除一个会自动在创建一个出来 保证是3个 Deployments 如果只使用ReplicaSet的缺点...

etcd

etcd

etcd是什么 etcd 是 CoreOS 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。具有以下特点: 简单:安装配置简单,而且提供了 HTTP API 进行交互,使用也很简单 键值对存储:将数据存储在分层组织的目录中,如同在标准文件系统中 监测变更:监测特定的键或目录以进行更改,并对值的更改做出反应 安全:支持 SSL ...

ArchLinux下安装Minikube

Minikube的安装和遇到的问题

安装 sudo pacman -S minikube kubectl 启动kubernetes //--image-mirror-country 表示使用中国镜像 sudo minikube start --driver=none --image-mirror-country='cn' //使用kubectl命令可以看到节点 sudo kubectl get nodes 问题 ...

Go语言之锁

Go语言之锁

golang内置锁的分类 类型 实现类 互斥锁 sync.Mutex 读写锁 sync.RWMutex 其中读写锁是通过互斥锁进行实现的 互斥锁源码解析 信号量概念 首先应弄清PV操作的含义: PV操作由P操作原语...

Go语言之Context

Go语言之Context的源码解析

Go语言之Context 两个重要的接口 type Context interface { //Deadline返回绑定当前context的任务被取消的截止时间;如果没有设定期限,将返回ok == false Deadline() (deadline time.Time, ok bool) //这个函数返回一个chan用于通知对应的goroutine进行相应的处理,如果c...

使用kvm安装mac

使用kvm安装mac

安装工具 https://github.com/foxlet/macOS-Simple-KVM 克隆上面仓库 安装依赖 sudo apt-get install qemu-system qemu-utils python3 python3-pip # for Ubuntu, Debian, Mint, and PopOS. 下来系统文件 需要注意的是 --high-sierr...

[leetcode] 寻找两个有序数组的中位数

寻找两个有序数组的中位数

寻找两个有序数组的中位数 给定一个二叉树,返回它的中序 遍历。 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: ...

[leetcode] 二叉树的中序遍历

二叉树的中序遍历

二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 解题思路 中序遍历递归即可,比较简单 代码 func inorderTraversal(root *TreeNode) []int { seri := []int{} travers...

mysql的事务和锁

mysql的事务和锁

事务的定义 理论上说,事务有着极其严格的定义,他必须同时满足4个特性,即通常所说的事务的ACID特性。 A(Atomicity) 原子性:操作必须是原子的 C(consistency) 一致性:事务某个动作失败了,系统可以自动撤销事务,返回初始化状态,保存一致性 I (isolation) 隔离性:并发控制 串行化 锁 等称呼 D(durability)持久性 : 事务...

sql的执行顺序以及表链接算法

查询探究

一个普通sql的执行顺序 我们手写sql的顺序: select <select_list> from <table_name> <join_type> join <join_table> on <join_condition> where <where_condition> group by <group_by...

死锁和解决方案

死锁和解决方案

死锁的定义 多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进 为什么会死锁 下图是一个死锁的实例示例: 下面是一段golang的goroutine的死锁实例,因为相互还想争夺锁导致deadlock。 但是这种deadlock是语言本身检查不出来的,需要开发者自己进行排查处理,不然会导致两个goroutine僵死 ...

Linux的Namespace,cgroup,chroot和docker的本质

docker的本质

Linux的namespace namespace 的概念 namespace 是 Linux 内核用来隔离内核资源的方式,隔离进程依靠这个抽象出看不到其他进程的内核进程。 通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个...

网络分层和协议以及封包

网络分层和协议以及封包

网络分层级 网络分层分为2个标准 osi/rm七层模型(理论标准) tcp/ip四层模型(事实标准) osi/rm tcp/ip 传输关系 应用层 表示层 会话层 应用层 应用到应用 传输层 传输层 ...

[leetcode] 对称的二叉树

对称的二叉树

对称的二叉树 解题思路 通过递归遍历输出带左右节点特征的字符串,然后比对字符串是否相等即可 代码 func isSymmetric(root *TreeNode) bool { if(root == nil) { return true } treeLeftStr := "" Traversal(root.Left,"m",&a...

php哈希冲突攻击解析

哈希冲突攻击

php哈希冲突攻击解析 一段攻击代码 $size = pow(2, 16); $startTime = microtime(true); $array = array(); for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) { $array[$key] = 0; }...

cmake使用

cmake的一些基本使用已经笔记记录

cmake的使用 cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件, 而是产生标准的建构档(如 U...

基于git分支比较的sftp文件上传脚本

基于git分支比较的sftp文件上传脚本

基于git分支比较的sftp文件上传脚本 脚本代码 #!/bin/bash localpath=`pwd` if [[ $1 == '' ]]; then echo "没有写根目录" exit fi remotepath="/var/www/html/$1/" branch=${2-'master'} envMathine=${3-'138'} //这里你可以根据第3个...

Byte转换工具类

Byte转换工具类

Byte转换工具类 代码 namespace common; /** * @Author: CYQ19931115 * @Date: 2017-11-28 17:51:52 * @Last Modified by: CYQ19931115 * @Last Modified time: 2017-11-29 11:11:41 */ class Bytes { ...

mysql 深入学习

深入学习mysql的基础原理

mysql的锁机制 什么情况下会出现deadlock 一般在一个长事务执行的时候如果两个事务相互抢夺资源的话就会造成死锁 innodb是行锁 MyISAM是表锁 但是innodb在搜索范围为全表的时候也是会形成表锁 比如下面这个更新语句 update user set username='lerko' where phone like '186%'; 在innodb如...

线程和携程的区别

线程和携程的区别

什么是协程 和线程的区别 参考网站:http://www.cnblogs.com/wonderKK/p/4062591.html 说到Coroutine,我们必须提到两个更远的东西。在操作系统(os)级别,有进程(process)和线程(thread)两个(仅从我们常见的讲)实际的“东西”(不说概念是因为这两个家伙的确不仅仅是概念,而是实际存在的,os的代码管理的资源)。这两个东西都是...

有限状态机

有限状态机以及有限状态机的应用

认识有限状态级 有限状态机器有3个特征 状态总数(state)是有限的。 任一时刻,只处在一种状态之中。 某种条件下,会从一种状态转变(transition)到另一种状态。 在js中的应用 下面介绍一个有限状态机的函数库Javascript Finite State Machine。这个库非常好懂,可以帮助我们加深理解,而且功能一点都不弱。 该库提供...

laravel深度入门

从源码分析入门laravel

初始化流程 http 的初始化 引入composer的autoload 实例化Applocation(初始化ioc容器,application本身就是ioc容器。并且注册本身到自己的ioc容器中。注册基础的服务提供者【并且执行服务提供者的register和boot方法】。注册一些类别名到ioc容器) 注册Http的Kernel到ioc容器 从make中...

协同过滤算法

协同过滤算法

协同过滤算法的计算原理 皮尔逊相关系数理解 x<-c(1,2,3,5,8) y<-c(0.11,0.12,0.13,0.15,0.18) 比如这两组数据 皮尔逊公式 [x-x数组平均值]*[y-y数组平均值]=》全部加起来/

nginx服务器配置

nginx服务器配置详细分析 OneinStack

首先找到配置文件 服务器是centos的环境 使用的是OneinStack这个php,java的运行环境一键安装工具 这个工具里面集成了一些列的sh脚本工具可以一键使用 一般配置文件的存放路径以及nginx的主要程序存放路径 server配置(nginx.conf) /usr/local/nginx/conf(ubuntu一般在 /etc/nginx/) 主程...

crontab工具的使用

crontab是一个linux重要的计划任务工具

如何查看crontab是否安装?以及初次使用 我们可以铜鼓 crontab -l就可以查看是否crontab这个工具是否有安装 crontab -l 如果出现 no crontab for root的话输入 crontab -e 会有如下的选项 no crontab for root - using an empty one Select an editor. To chan...

ps 进程管理命令

ps命令很强大!

查看所有用户的进程 ps aux ps aux | grep [key] 可以进行筛选 一些基本用法 ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 ps -e 此参数的效果和指定"A"参数相同。 ...

webpack入门

webpack入门笔记

webpack webpack 是一个可以让程序员可以使用require() 可以包含js以及css和各种web资源 并且支持一些资源的转换 吧这些资源打包到在一起 初次使用 使用npm install webpack安装webpack 创建webpack.config.js这个文件 配置output以及entry 运行webpack命令 使用vue-cl...

mysql 主从复制

使用Docker创建本地mysql主从,实现主从分离

docker创建环境 使用docker创建两个mysql容器 docker 镜像可以使用网易蜂巢的mysql的docker镜像 MYSQL_ROOT_PASSWORD是设置docker容器中mysql的root账户的密码 docker run --name mysql-master -v /home/docker/file/:/home/ -e MYSQL_ROOT_PASSW...

Phero数据库查询框架【文档】

"Phero 数据库查询类库的使用"

安装 git安装 git clone https://github.com/chenyingqiao/Phero.git composer 安装 composer require lerko/p-hero 开始 在入口脚本注入PDO 方法1 use Phero\System\DI; use Phero\Database as database; $con...