- 博客(80)
- 收藏
- 关注
原创 PB协议(三)Protobuf的Python开发教程
反射的更高级用途可能是发现相同类型的两条消息之间的差异,或者开发一种“协议消息的正则表达式”,您可以在其中编写与某些消息内容匹配的表达式。标签编号 1-15 比更高的编号需要少一个字节来编码,因此作为一种优化,您可以决定将这些标签用于常用的字段,而将标签 16 和更高的标签用于不太常用的字段。更重要的是,PB协议可以支持扩展字段,也就是说,下次你想往一个接口多增加一个字段,可以直接在proto文件中添加,然后重新编译,编译后的python代码仍然可以兼容旧的数据格式。现在让我们尝试使用您的协议缓冲区类。
2022-10-29 12:09:11
3174
3
原创 PB协议(二)Protobuf的PHP开发教程
type url的格式一般为 type.googleapis.com/包名.message名,例如type.googleapis.com/google.protobuf.StringValue 就表示要按照protobuf官方内置的 StringValue这种内置的message类型对any类型进行解析,也就是解析为字符串格式。需要注意,any类型是一种泛型,因此设置的时候必须指定any实际的类型,否则在反编码的时候程序就不知道应该按整型、字符串还是map或数组等类型对其进行反编码。
2022-10-23 13:08:59
2009
原创 PB协议(一)什么是Pb协议(Protobuf),Pb协议如何使用,PB协议的数据类型
16 到 2047 范围内的字段编号占用两个字节。例如你的web接口如果返回的内容较多,导致数据在网络传输的时间过长,从而影响到用户体验的话,你可以使用响应格式为PB协议的web接口代替json格式的web接口,按照官网的说法,使用PB协议相比于json格式最多可以提高10倍的压缩和传输效率。PB协议一般用于数据量较大的数据传输 以及 希望提高数据传输效率的场景,它本质上的工作其实是将你要传输的数据通过一套规则进行编码成二进制格式的数据,从而极大的压缩你要传输的内容,达到提高数据传输速度和效率的目的。
2022-10-23 13:03:30
6626
原创 MySQL怎么运行的系列(十一)快照读、锁定读、半一致性读 和 加锁语句分析
实际上,在 读已提交/读未提交 级别下,如果事务A的update语句要修改的记录已经被其他事务加了X锁,事务A就会读取该记录版本链的最新已提交版本,并判断该版本是否与update语句中的搜索条件相匹配,如果不匹配则不对其加锁(不对其修改,跳到下一条记录),匹配则对其加锁(然后陷入阻塞,待其他事务解锁后对该记录进行修改),这就是半一致性读。回表,在主键索引记录上记录锁,判断其他条件,发现不满足所有其他条件,因此释放主键索引和二级索引对应的记录的锁。如果使用自动事务提交,则select会通过MVCC快照读。
2022-10-02 19:28:13
895
原创 MySQL怎么运行的系列(十)Innodb中的锁:记录锁、临键锁、间隙锁、意向锁
auto-inc锁和轻量级锁带来的结果是,前者可以保证一个事务的一次insert语句产生的自增值是连续的(事务A是1/2/3,事务B是4/5/6),而后者会让事务A的一条insert语句产生的多个自增值和事务B的一条insert语句产生的多个自增值有交叉(例如 1/3/5是事务A的自增值,2/4/6是事务B的自增值)。从上面的过程看出,隐式锁起到了延迟生成锁结构的作用,如果别的事务(事务A)在执行过程中不需要更改或加锁读事务B创建的记录M,就不会在内存中生成对事务B的锁,节省了一次加锁开销。
2022-09-16 23:52:30
560
原创 MySQL怎么运行的系列(九)事务隔离级别和MVCC原理
为了保证事务与事务之间的修改操作不会互相影响,innodb希望不同的事务是隔离的执行的,互不干扰。两个并发的事务在执行过程中有 读读、读写(一个事务在读某条数据的同时另一个事务在写这条数据)、写读 和 写写 这4种情况......
2022-09-04 16:58:37
137
原创 MySQL怎么运行的系列(八)14张图说明白MySQL事务原子性和undo日志原理
如何理解undo日志数据库事务是mysql执行操作的最小逻辑单位,一个事务可以包含一个或者多个sql语句,这些sql要么都执行成功要么都执行失败,这就是数据库事务四大特性之一的原子性。原子性能实现的关键是在失败的时候能够发生回滚,这依赖于 undo log 日志。事务在更改数据之前会将要更改的数据备份到undo log中(undo log会保存更改前的数据,这是一个行级别的历史数据),如果发生了错误或者用户执行了rollback,就可以通过undo log将数据恢复到事务开始之前的状......
2022-06-26 22:30:04
407
原创 MySQL怎么运行的系列(七)25张图肝爆MySQL事务持久性和redo日志原理
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql怎么运行的系列(三)InnoDB存储结构之行结构和页结构 MySQL怎么运行的系列(四)Innodb索引结构和方案 MySQL...
2022-05-13 23:58:54
341
原创 MySQL怎么运行的系列(六)详解分析 Innodb 单表索引查询和连接查询效率
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql怎么运行的系列(三)InnoDB存储结构之行结构和页结构 MySQL怎么运行的系列(四)Innodb索引结构和方案 MySQL...
2022-05-08 01:39:30
684
原创 MySQL怎么运行的系列(五)Innodb表空间(table space)、区(extent)和段(segment)
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql怎么运行的系列(三)InnoDB存储结构之行结构和页结构 MySQL怎么运行的系列(四)Innodb索引结构和方案 MySQL...
2022-05-08 01:32:16
1250
原创 MySQL怎么运行的系列(四)Innodb索引结构和方案
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql系列(三)InnoDB存储结构之行结构和页结构 MySQL怎么运行的系列(四)Innodb索引结构和方案 ...
2022-05-05 00:23:33
949
原创 Mysql系列(三)InnoDB存储结构之行结构和页结构
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql系列(三)InnoDB存储结构之行结构和页结构 MySQL怎么运行的系列(四)Innodb索引结构和方案 ...
2022-05-05 00:22:33
949
原创 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 MySQL怎么运行的系列(三)Innodb缓冲池 buffer pool 和 改良版LRU算法 MySQL怎么运行的系列(四)Innodb索引结构和方案 ...
2022-05-05 00:19:49
1530
原创 MySQL怎么运行的系列(一)mysql体系结构和存储引擎
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 MySQL怎么运行的系列(三)Innodb缓冲池 buffer pool 和 改良版LRU算法 MySQL怎么运行的系列(四)Innodb索引结构和方案 ...
2022-05-05 00:10:19
1017
原创 Nginx HTTP模块篇 limit_conn和limit_req模块 (十二)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:49:36
600
1
原创 Nginx HTTP模块篇 rewrite模块 (十一)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:49:02
187
1
原创 Nginx HTTP模块篇 realip模块 (十)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:48:28
775
1
原创 Nginx HTTP模块篇 server_name指令和Nginx处理HTTP请求的11个阶段(九)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:47:51
483
1
原创 Nginx HTTP模块篇 Nginx接收HTTP请求的流程 (八)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:47:20
713
原创 Nginx架构篇之 Nginx的进程结构和信号管理 (六)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:46:39
255
1
原创 Nginx初认识之 Nginx支持PHP和TP5项目 (五)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:46:00
477
1
原创 Nginx初认识之 GoAccess可视化实时监控access.log日志 (四)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:44:34
328
原创 Nginx初认识之 Nginx搭建反向代理服务器 (三)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:44:01
292
1
原创 Nginx初认识之 Nginx搭建静态资源服务器 (二)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-17 09:43:27
121
原创 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一)
本系列文章目录 展开/收起 Nginx初认识之 Nginx重载配置文件、热部署和更新日志 (一) Nginx初认识之 Nginx搭建静态资源服务器 (二) Nginx初认识之 Nginx搭建反向代理服务器 (三) Nginx初认识之 GoAccess可视化实时监控access.log日志 (四) Nginx初认识之...
2021-02-16 16:56:56
689
1
原创 Go入门系列(十九)io编程和文件操作
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 16:51:52
339
原创 Go入门系列(十八) 反射、包和测试工具
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 16:33:44
200
原创 Go入门系列(十七) go并发之基于共享变量的并发
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 16:18:36
638
原创 Go入门系列(十六) go并发编程之Goroutine与channel(下)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 16:12:53
145
原创 Go入门系列(十五) go并发编程之Goroutine与channel(中)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 16:02:59
159
原创 Go入门系列(十四) go并发编程之Goroutine与channel(上)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 16:00:29
294
原创 Go入门系列(十三) 接口——类型断言(下)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 15:58:35
263
1
原创 Go入门系列(十二) interface接口——接口的应用和例子(中)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 15:58:09
289
原创 Go入门系列(十一) interface接口——接口的定义、作用、具体类型和具体值(上)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-16 15:57:46
753
原创 Go入门系列(十) go中的面向对象编程——方法
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-15 08:43:54
211
原创 Go入门系列(九) 函数 - defer机制(下)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-15 08:43:20
155
原创 Go入门系列(八) 函数(上)
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-15 08:42:15
214
原创 Go入门系列(七) json、时间操作和template模板
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-15 08:40:01
672
原创 Go入门系列(六) 结构体struct
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-15 08:39:18
475
原创 Go入门系列(五) 哈希表map
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量、指针、数据类型简介和作用域 Go入门系列(三) 基础类型——整型、浮点型、布尔类型和字符串 Go入门系列(四) 数组Array和切片Slice Go入门系列(五) 哈希表map Go入门系列(六) 结构体s...
2021-02-15 08:38:12
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人