原创 2022-04-17米哈遊面試

1,make和new的區別 2,map的併發問題 3,chan的異常情況 4,讀寫鎖的情況 5,內部RPC的架構 6,服務發現是怎麼做的 6,context的使用 7,10個協程併發打印100條日誌 8,從前序和中序遍歷構造二叉樹 9,介紹

原创 CRUD-區分大小寫查詢 CRUD-區分大小寫查詢

CRUD-區分大小寫查詢 where查詢 mysql> select * from t_emp where ename = "smith"; +-------+-------+-------+------+------------+---

原创 哈希碰撞的解決辦法 哈希碰撞的解決辦法

哈希碰撞的解決辦法 哈希碰撞指的是兩個不同的key經過哈希後得到的數值是一樣的,就產生了衝突或者碰撞 開放地址法 基本思想:當發生地址衝突時,按照某種方法繼續探測哈希表中的其他存儲單元,直到找到空位置爲止 簡單的做法是:在遭遇到哈希衝突

原创 golang 不同類型的nil值 golang 不同類型的nil值

golang 不同類型的nil值 nil通道 var ch chan int 通道必須使用make函數進行初始化,對nil管道進行讀寫會導致永久阻塞 nil切片 package main import "fmt" func main(

原创 golang MPG併發模型 golang MPG併發模型

golang MPG併發模型 以上這張圖就是golang的mpg模型中各個元素的說明: M:物理線程,和其他語言中的線程是一致的;最大限制爲10000個 P:邏輯處理器,負責調度協程;通常數量和CPU數量一致 G:即golang中

原创 golang map遍歷爲什麼是無序的? golang map遍歷爲什麼是無序的?

golang map遍歷爲什麼是無序的? 遍歷map package main import "fmt" func main() { var m = map[string]string{ "zhangsan":

原创 Redis深度歷險-AOF持久化 Redis深度歷險-AOF持久化

Redis深度歷險-AOF持久化 Redis提供兩種持久化方式AOF和RDB,RDB是快照形式持久化全量數據、AOF是增量持久化記錄執行命令 AOF原理 struct redisServer { ........ sds a

原创 Redis深度歷險-過期刪除 Redis深度歷險-過期刪除

Redis深度歷險-過期刪除 保存過期時間 Redis支持通過TTL和PTTL命令來查詢剩下的存活時間 typedef struct redisDb { ...... dict *expires;

原创 cgo cgo

cgo cgo是用來在Go語言中調用C語言的工具 Go語言調用C語言 簡單C語言函數 package main /* #include <stdio.h> void sayHello() { printf("%s\n", "h

原创 iota iota

iota go語言中不支持枚舉定義,但是使用iota可以實現類似效果 枚舉定義 package main import "fmt" const ( a int = iota b ) func main() {

原创 mysql:group by,order by mysql:group by,order by

mysql:group by,order by order by order by是用於支持字段的關鍵字 表結構如下 select * from table_a; +----------+-------+ | name | sc

原创 Go-接口實現原理 Go-接口實現原理

Go-接口實現原理 接口的底層結構 eface和iface   eface和iface都是描述接口的數據結構,區別在於iface描述的接口包含方法、而eface描述的接口不包含方法 eface的數據結構 type eface stru

原创 go引用類型 go引用類型

go引用類型 值類型   go語言中的賦值操作都是值傳遞,也就是會將變量完整的複製一份,一般的解決思路是使用指針 引用類型   引用類型並不是指該變量在賦值時進行的是引用傳遞,而是共享底層數據結構;例如:切片由三部分組成,指向底層數組的指針

原创 Redis深度歷險-淘汰策略 Redis深度歷險-淘汰策略

Redis深度歷險-淘汰策略 Redis是內存型數據庫,在系統中如果佔用內存超過物理內存就會出現磁盤swap,這種操作就會導致性能急劇下降,所以纔會出現淘汰策略 Redis配置 Redis允許用戶配置使用的最大內存和超過最大內存時的處

原创 protoc-生成go指針 protoc-生成go指針

protoc-生成go指針 這裏指的是爲結構體中基礎類型生成go指針,嵌套結構體默認就是指針 爲什麼需要生成指針?   因爲在一些場景中指針表示的含義是比類型表示的多的 type user struct { name st