自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (32)
  • 收藏
  • 关注

原创 mysql 8.0.31 rr隔离级别下的加锁规则总结

原则1:加锁的基本单位是next-key lock。希望你还记得,next-key lock是前开后闭区间。原则2:查找过程中访问到的对象才会加锁。优化1:索引上的等值查询,给唯一索引加锁的时候,next-key lock退化为行锁。优化2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock退化为间隙锁。一个bug:唯一索引上的范围查询会访问到不满足条件的第一个值为止。查看锁查performance_schema.data_locks表。

2023-03-25 18:46:34 260

原创 go sync.Map原理

无论是read还是dirty,本质上都是map[interface{}]*entry类型,这里的entry其实就是Map的value的容器。通过这种设计,规避了原生map无法并发安全delete的问题,同时在变更某个键所对应的值的时候,就也可以使用原子操作了。使用了两个原生的map作为存储介质,分别是read map(只读map)和dirty map(脏map)。entry的本质,是一层封装,可以表示具体值的指针,也可以表示key已删除的状态(即逻辑假删除)那sync.Map是怎么做的高性能的呢?

2023-03-17 18:02:56 131

翻译 HTTP2相关rfc

http2协议文档

2023-02-22 19:13:45 362

原创 protobuf和grpc-go代码生成

protobuf代码生成,grpc代码生成,protoc命令使用

2023-02-21 17:40:19 242

原创 go install命令

go install命令用法详解

2023-02-20 17:07:22 1245

原创 go list 命令

go list命令的使用

2023-02-16 17:16:13 291

转载 关于队头阻塞(Head-of-Line blocking),看这一篇就足够了

在这篇(很长,我知道)的文章中,我们一直在追踪队头阻塞。我们首先讨论了为什么 HTTP/1.1 会受到应用层队头阻塞的影响。这主要是因为 HTTP/1.1 没有识别单个资源块的方法。HTTP/2 使用帧来标记这些块并启用多路复用。这解决了 HTTP/1.1 的问题,但遗憾的是HTTP/2 仍然受到底层 TCP 的限制。由于 TCP 将 HTTP/2 数据抽象为一个单一的、有序的、但不透明的流,因此如果数据包在网络上丢失或严重延迟,它将遭受队头阻塞。

2022-09-21 16:52:32 530

原创 etcd 证书的坑

1etcdctl put key value --key=/etc/kubernetes/pki/etcd/server.key --cert=/etc/kubernetes/pki/etcd/server.crt --cacert=/etc/kubernetes/pki/etcd/ca.crt如果你的证书是自签名ca颁发,这三个证书参数缺一不可,--cacert 不带报错authentication handshake failed: x509: certificate signed by unknown

2022-06-30 10:17:53 789

原创 openssl 生成带X509 V3 extension的证书

openssl SAN扩展 自签名CA 中间CA

2022-06-30 10:16:22 2801

原创 KMP算法精要

int strstr(string s,string p)在s中寻找p第一次出现的位置返回,找不到返回-1朴素字符串匹配步骤:确定s的匹配起点offset,第一次offset=0,以后offset=offset+1; 从s的offset开始,从p的位置0开始,逐位比较,一旦不匹配,回到步骤1KMP匹配KMP原理上根朴素字符串匹配没有区别,但是有两点优化:在确定s的匹配起点的时候,每次不匹配后不是每次后移动1位.移动多少位取决于已匹配部分公共前后缀长度与模式串p对比时,也不

2022-04-14 15:06:08 235

原创 推送局域网的公网地址到企业微信应用

前提条件1 已经注册了自己的企业微信 企业2 自己的企业微信添加了pushplus 推送应用func push() { //获取公网ip req, err := http.NewRequest(http.MethodGet, "http://ip.me/", nil) req.Header.Set("User-Agent", "curl/7.58.0") req.Header.Set("Accept", "*/*") cli := http.Client...

2021-09-01 11:12:53 563

原创 vim 中文乱码问题

vim 有一下三种编码1、fileencoding 在vim中e ++enc=cp936设置,cp936是中文gbk还是gb2312,vim按此格式载入文件,按此格式保存文件2、encoding LOCALE环境变量值获取,是vim buffer中的格式,是vim内部核心格式,载入时用iconv 从fileencoding到此格式encoding转换,保存时此格式encoding转成fi...

2019-05-23 16:27:00 811

原创 openssl 生成证书

// 生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认)openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt// 为顶级CA的私钥文件去除保护口令openssl rsa -in CARoot1024.key -out CARoot1024.key 

2017-12-08 18:03:28 993

原创 红黑树详解 原理 史上最强 精华

未经授权,不得私自转载,否则追究法律责任联系作者[email protected]取得授权转载请注明作者和出处网上很多红黑树的讲解都没有分析清楚插入删除各种情况是怎么来的,他们大多把分析图画的很复杂,说到底还是理解不够深,其实这些情况都是极其简单的,我这里重点推导各种情况是怎么来的,不解释各种情况怎么调整,因为结构很简单调整很容易,且网上很多。红黑树的精髓是明白各种情况

2016-07-09 15:42:40 7881 4

翻译 go build命令

go build [-o output] [-i] [build flags] [packages]Build 编译由import path命名的包以及这些包所依赖的包,但不安装编译结果如果要编译的参数是.go文件列表,build把他们当作指定单个包的源文件列表当编译单个main包时,build生成的可执行文件的文件名是第一个源文件或者源码目录的名字,例如 go build

2015-12-13 15:44:06 4116

原创 iocp例子

//socket的简单封装CDSocket.h#include #define BUFFER_SIZE 1024#define OP_READ 1#define OP_WRITE 2#define OP_ACCEPT 3struct SockInit{ SockInit() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2)

2014-11-02 10:41:30 648

原创 mysql用现有表的数据建表或填充表

这种方式注意INSERT INTO表名(列名1,列名2…)SELECT表名(列名1,列名2…)插入与选取的列数要相同,且类型兼容,选取的列分别依次按顺序填入要插入的表的列这种方法注意:      CREATETABLE表名1(列1类型1,列2类型2…) AS      SELECT列1,列2… FROM表名2取数据的表2选

2013-04-18 20:41:13 1828 1

原创 mysql 外键约束

上图中contact_interest和contact_seeking两张表的创建涉及到外键约束,其中一个表创建完成后,另一个的创建总是失败,害我摸索好久。这是我创建失败的sql:create tablecontact_interest(contact_id int not null,interest_id int not null,primary key(contact_

2013-04-18 20:33:41 955

sed and awk 101 hacks.pdf (中文版带书签)

学习linux shell编程的重要工具 sed和awk经典教程 sed全称(stream editor)流式编辑器,Sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等 awk的强大之处在于能生成强大的格式化报告。 数据可以来自标准输入、一个或多个文件,或其它命令的输出。 它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。 它在命令行中使用,但更多是作为脚本来使用。 awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。 如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。 awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在linux系统中已把awk链接到gawk

2023-06-25

pvtrace c/c++函数调用关系生成工具

为了生成函数调用图,您需要 4 个元素:GNU 编译器工具链、pvtrace、instrument.c 和 Graphviz。 pvtrace 解压后make->make install instrument.c 在pvtrce包里面 Graphviz是开源工具自己下载 使用范例: 1: $ ls 2: instrument.c test.c 3: $ $ gcc -g -finstrument-functions test.c instrument.c -o test 4: $ ./test 5: $ ls 6: instrument.c test.c 7: test trace.txt 8: $ pvtrace test 9: $ ls 10: graph.dot test trace.txt 11: instrument.c test.c 12: $ dot -Tjpg graph.dot -o graph.jpg 13: $ ls 14: graph.dot instrument.c test.c 15: graph.jpg test trace.txt 16: $

2015-07-12

ftp下载

ftp下载

2014-12-31

完成端口范例

完成端口

2014-12-31

基于http协议的自定义协议封装

用http协议包装xml实现的一个自定义协议

2014-01-20

stl相关经典书

stl相关经典书 侯捷翻译或创造,大师之作,非敛财废纸

2013-04-26

android 植物大战僵尸毕业设计

android 植物大战僵尸毕业设计

2012-10-31

Oracle10g_Views视图的神图

Oracle10g_Views视图的神图

2012-10-31

JAVA经典算法90题【含源码】.rar

JAVA经典算法90题【含源码】.rar

2012-10-31

C#基类.zip

我收集的C#基类,比较全.是学习C#的好助手

2012-10-30

目前最完整的数据结构1800题包括完整答案(1).rar

目前最完整的数据结构1800题包括完整答案(1).rar ,是学习数据结构和算法的好助手

2012-10-30

vc+托盘程序.zip

vc+托盘程序.zip ,一个关于托盘程序的经典实例,给你编写windows托盘程序的灵感

2012-10-30

Javascript教程--从入门到精通【完整版】.doc

Javascript教程--从入门到精通【完整版】 手把手教你学会JavaScript

2012-10-30

c语言经典排序算法 8种-含源代码.pdf

c语言经典排序算法(8种-含源代码.pdf,八种经典排序算法,源码

2012-10-30

C_实例.net_经典例子400个.doc

.net经典实例400个,学习.net的好助手

2012-10-30

c、c++面试题集.pdf

c C++ 经典面试题集锦 ,祝你找到心仪的工作

2012-10-30

C#_130道面试题.pdf

C#经典面试试题130道,助你找到心仪的工作

2012-10-30

深入浅出面向对象分析与设计.rar

深入浅出面向对象分析与设计教你学会面向对象的分析与设计,掌握oo精髓

2012-10-30

Writing Clean Code.rar

教你写出整洁简单高效易于维护的代码,改善糟糕的设计习惯,助你养成良好的编码习惯,

2012-10-30

TELNET协议原理及其实现

实现telnet协议的原理,实现telnet的协议提供系统框架

2012-10-30

Winsock 网络编程经络——源码

通过代码学习常用的网络协议,tcp ip icmp smtp telnet http

2012-10-30

Windows核心编程

了解windows操作系统,进军高级windows应用的最佳参考书

2012-10-26

深入浅出MFC

侯捷的经典,深入探索mfc内部原理,你懂得,无须多言

2012-10-26

mfc高级编程

mfc高级编程,控件重绘,自定义控件,高级界面编程

2012-10-26

Visual+Assist+X+10.6.1823+破解版.rar

Visual+Assist+X+10.6.1823+破解版.rar

2012-08-21

CryptoAPI DES

用CryptoAPI编写的des加密解密字符串源码

2012-08-10

CryptoAPI教程

我好不容易找到的CryptoAPI pdf文档,对学习加密的朋友很有帮助

2012-08-08

crypto50加密算法库

各种加密算法,包括DES、RAS、AES等等

2012-08-06

200多个常见的VC++加密算法代码

200多个常见的VC++加密算法代码 包括des TripleDES rsa MD5 等

2012-08-06

botan加密库

Botan 是一个 C++ 的加密算法库,支持 AES, DES, SHA-1, RSA, DSA, Diffie-Hellman 等多种算法,支持 X.509 认证以及CRLs 和 PKCS #10

2012-08-02

putty-src.zip

putty实现了telnet ssh rlogin协议 开源软件 详细说明文档

2012-08-01

tinyxml_2_2_1.zip

tinyxml是一个轻量级的xml解析库,开源,有详细的文档,范例

2012-08-01

空空如也

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

TA关注的人

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