Juya Cai

protobuf序列化反序列化原理剖析

protobuf的数据类型大致可以分为以下几种: 变长编码类型Varints 固定32bits类型 固定64bits类型 有长度标识的变量 根据这些类型,编码方式也就分成四种。下面我来一一介绍一下不同数据类型的编码方式。 Varints编码 Varints编码用于处理变长编码类型。 核心思想其实就一句话:数字小的占用空间小,数字大的占用空间大。那要如何实现这个结果呢...

MySQL集群主从复制原理剖析

为了提高系统数据的高可用,通常会集群化部署MySQL,MySQL中又是使用了什么技术来实现其高可用的呢?答案是主从复制。主从复制保证集群内MySQL的数据保持一致性。主从复制的前提是binlog。 binlog 什么是binlog?binlog是Mysql Server层提供的在表结构或者表数据发生修改的时候进行保存的日志。每产生一条更新操作时,Server层就会产生一条binlog,在...

春季实习面试备战指南

前言 在一月份的实习面试中发现不少问题和需要进行补充的地方,在2月份的春季实习面试开始前,进行一些针对性的准备和学习,在这里发帖记录需要学习的内容。 需要准备的内容大致可以分为两个方向:cpp方向和go方向。由于cpp岗是在太少、加上就业形势不好,全部押宝cpp实在不是明智之举,因此打算在这个寒假多学一门语言 / GO。不过学习一门语言需要掌握的模块基本一致,可以快速速成。速成完语言学习后...

使用单例模式编写工具类范式

单例模式是最常用的设计模式之一,当类对象只需要一个实例、或者重复创建的无意义且消耗资源的时候需要,通常用于全局唯一工具类的编写,比如:日志、配置、uuid生成器等。单例类需要提供一个全局访问的入口 / global access point。下面仅讨论cpp下单例类的实现。 cpp中单例类的编写范式有两种:Meyer’s Singleton 、 Lazy Singleton 和 Eager...

算法(九)--二分查找

二分查找 重要重要!二分查找的前提是有序数组!并且元素不能重复,如果重复查找返回的下标可能不是唯一的。 循环不变量原则:根据定义不变量区间来判断while循环条件语句以及循环体内的操作。区间分为两种:左闭右闭区间和左闭右开区间。左闭右闭区间的循环条件是left<=right,左闭右开区间的循环条件是left<right。在循环中一定要根据区间的定义来确定边界条件,进行边界处理...