1,make和new的区别 2,map的并发问题 3,chan的异常情况 4,读写锁的情况 5,内部RPC的架构 6,服务发现是怎么做的 6,context的使用 7,10个...
1,make和new的区别 2,map的并发问题 3,chan的异常情况 4,读写锁的情况 5,内部RPC的架构 6,服务发现是怎么做的 6,context的使用 7,10个...
CRUD-区分大小写查询 where查询 正常的where语句对字符串的查询都是不区分大小写的 区分大小写查询 可以通过binary关键字进行查询
哈希碰撞的解决办法 哈希碰撞指的是两个不同的key经过哈希后得到的数值是一样的,就产生了冲突或者碰撞 开放地址法 基本思想:当发生地址冲突时,按照某种方法继续探测哈希表中的其...
golang MPG并发模型 以上这张图就是golang的mpg模型中各个元素的说明: M:物理线程,和其他语言中的线程是一致的;最大限制为10000个 P:逻辑处理器,负责...
golang 不同类型的nil值 nil通道 通道必须使用make函数进行初始化,对nil管道进行读写会导致永久阻塞 nil切片 在go语言中空切片和nil在比较时是不一样的...
golang map遍历为什么是无序的? 遍历map map底层使用哈希表实现,在运行过程中会进行扩容,扩容后顺序会发生变化;但是如果不进行扩容的话,是可以保证有序的;那为什...
Redis深度历险-AOF持久化 Redis提供两种持久化方式AOF和RDB,RDB是快照形式持久化全量数据、AOF是增量持久化记录执行命令 AOF原理 AOF持久化的是...
Redis深度历险-过期删除 保存过期时间 Redis支持通过TTL和PTTL命令来查询剩下的存活时间 在Redis中每一个数据库中有一个专门存储过期时间的字典,不管是通过什...
iota go语言中不支持枚举定义,但是使用iota可以实现类似效果 枚举定义 iota实际被定义为0,仅配合const关键字来使用也仅在此const范围中有效 iota原理...
cgo cgo是用来在Go语言中调用C语言的工具 Go语言调用C语言 简单C语言函数 在Go语言中需要通过import "C"关键字来链接gcc编译器,在import "C"...
mysql:group by,order by order by order by是用于支持字段的关键字 表结构如下 默认生序 order by默认以升序进行排列 降序排列 ...
Go-接口实现原理 接口的底层结构 eface和iface eface和iface都是描述接口的数据结构,区别在于iface描述的接口包含方法、而eface描述的接口不包...
go引用类型 值类型 go语言中的赋值操作都是值传递,也就是会将变量完整的复制一份,一般的解决思路是使用指针 引用类型 引用类型并不是指该变量在赋值时进行的是引用传递...
Redis深度历险-淘汰策略 Redis是内存型数据库,在系统中如果占用内存超过物理内存就会出现磁盘swap,这种操作就会导致性能急剧下降,所以才会出现淘汰策略 Redis配...
是真的有点没想到呀
Go的内存模型介绍 如何保证在一个goroutine中看到在另一个goroutine修改的变量的值,这篇文章进行了详细说明。 建议 如果程序中修改数据时有其他goroutine同时读取,那...
介绍 如何保证在一个goroutine中看到在另一个goroutine修改的变量的值,这篇文章进行了详细说明。 建议 如果程序中修改数据时有其他goroutine同时读取,那...
protoc-生成go指针 这里指的是为结构体中基础类型生成go指针,嵌套结构体默认就是指针 为什么需要生成指针? 因为在一些场景中指针表示的含义是比类型表示的多的 假设...
defer关键字 defer是Golang中一个非常重要的关键字,主要是用于注册延迟调用,这些调用在return时才会执行,通常用来销毁资源 示例 简单场景 最简单的使用场景...
错误处理的几种套路 在Go语言中并不支持抛出异常的方式提示错误,而是通过支持多返回值的方式返回error接口、并且支持panic的方式在遇到致命错误时推出程序 致命错误 pa...
比较运算 基础类型比较 对于int、bool等基础类型直接比较值相等,对于指针则是直接比较的指针所指向的地址是否相等 字符串比较 字符串的比较问题在C/C++和Java中都是...