摘要:###新建分支并切换 git checkout -b "分支名" 创建:git branch "分支名" 切换:git checkout "分支名" ###将代码合并到主分支 1.git add . 2.git commit -m "提交的文字描述" 3.git pull origin master
阅读全文
摘要:###CAP定理 任何一个分布式系统都无法同时满足一致性、可用性和分区容错性这三个条件。 C consistency:一致性,指数据分布在多节点上,任意节点读取的数据都是最新的。 强一致性:对于关系型数据库,要求更新过的数据能被后续的访问都能看到。需要牺牲可用性。 弱一致性:可以容忍后续的部分或者全
阅读全文
摘要:###1.RPC使用步骤 服务端: 1.注册rpc服务,绑定对象 rpc.Register("服务名", 回调对象) 2.创建监听器 listener, err := net.Listen("tcp", addr) 3.建立连接 conn, err := listener.Accept() 4.绑定
阅读全文
摘要:1.数据结构 五个基本类型: 字符串:set、get 底层 struct sdshdr{ unsigned int len; // 标记buf的长度 unsigned int free; //标记buf中未使用的元素个数 char buf[]; // 实际存储的内容 } 哈希:hset、hget。底
阅读全文
摘要:1.MySQL索引 作用:索引用来帮助数据库高效获取数据的数据结构,降低数据库的IO成本,提高查询效率。 MySQL采用B+树作为索引结构,B+树通常拥有两个指针,一个指向根节点,可以随机查找,一个指向最小关键字的叶子节点,可以顺序查找 采用B+树而不是B树的原因: 1.B树每个节点不仅存放索引,还
阅读全文
摘要:1.Slice扩容原理: (1)1.17版本: 当期望容量 > 两倍的旧容量时,直接使用期望容量作为新切片的容量; 如果旧容量 < 1024(注意这里单位是元素个数),那么直接翻倍旧容量; 如果旧容量 > 1024,那么会进入一个循环,每次增加25%直到大于期望容量 (1)1.18版本:不再与102
阅读全文
摘要:Q: 介绍一下进程、线程和协程 A: 1.进程是资源分配的基本单元,一个进程可以包含一个或多个线程,进程大小一般较大,拥有自己独立的内存空间,进程间通信和切换效率低下 2.线程是资源调度的基本单元,线程大小一般几M,一个进程下的多个线程共享一片内存,因此线程通信和切换效率高,但任何一个线程崩溃都会导
阅读全文
摘要:###TCP三次握手和四次挥手过程 三次握手: 1.客户端向服务器发送建立连接请求,将报文的同步位置为1,随机选择一个序号j发送,进入syn_send状态。 2.服务器收到客户端发送的请求后,将相关信息放入半连接队列,同意连接则发送请求同意报文,将同步位置为1,确认号置为1,确认序号置为j+1,随机
阅读全文
摘要:Q: C中struct和C++中struct有何区别? A: 1.C中struct是面向过程的,只能封装一些数据结构,不可以含有成员函数;C中struct是面向对象的,不仅可以封装数据结构,也可以封装函数来操作这些数据结构 2.C中struct无法继承,C中struct可以继承 3.使用时,C使用结
阅读全文