原创 MySQL 學習筆記(基礎)

MySQL 學習筆記(基礎) 基礎 查詢數據 Select 連接表 使用一個查詢獲取數據庫中所有表的MySQL行計數 比較兩個表不同的數據 case表達式 插入數據(Insert) 具有SELECT子句的MyS

原创 Golang Modules概念

轉載請註明出處:www.huamo.online Modules概念 一個module是相關Go package的一個集合。modules是源碼交互和版本控制的單元。go命令直接支持使用模塊,包括記錄和解析對其他模塊的依賴。mod

原创 Golang 程序如何優雅退出

Golang 程序如何優雅退出 當我們由應用程序升級時,我們一般是重啓服務進行加載最新代碼,如果我們想讓當前應用把程序正在處理的任務處理完成再退出進行優雅的重啓,不丟失當前處理的任務。 實現方法 監聽SIGTERM信號 c :

原创 Golang 如何使用redigo將一個結構體數據保存到redis

Golang 如何使用redigo將一個結構體數據保存到redis 先序列化,再保存到redis中 從redis中獲得值是,先使用redis.Bytes(c.Receive())獲取到[]byte,再Unmarshal即可

原创 Golang 基於IP地址的HTTP限速請求

Golang 基於IP地址的HTTP限速請求 使用 golang.org/x/time 在本教程中,我們將基於用戶的IP地址創建一個簡單的中間件來進行速率限制。 純HTTP服務器 讓我們從構建一個簡單的HTTP服務器開始,該服務器

原创 Kafak權威指南學習筆記

Kafak權威指南學習筆記 初識Kafka 發佈與訂閱消息系統 消息和批次 主題和分區 生產者和消費者 broker和集羣 安裝 kafak 向Kafka 寫入數據 創建Kafka生產者 原生命令創建生成者 P

原创 Golang 語言操作 JSON

Golang 語言操作 JSON 使用 encoding/json package main import ( "encoding/json" "fmt" ) // User ... type User st

原创 Golang 配置文件熱加載

Golang 配置文件熱加載 通常我們更新應用程序的配置文件,都需要手動重啓程序或手動重新加載配置。重啓服務會造成服務的短暫不可以用。所以我們要實現配置文件的熱加載。實現這個的主要思路就是監聽這個配置文件是否有改動 主要實現代碼如

原创 Golang 使用pprof

Golang 使用pprof Golang 中監控代碼性能的有兩個包 net/http/pprof runtime/pprof pprof 的作用 pprof 是 Golang 語言中分析程序運行性能的工具,它能提供各種性能數

原创 Go Code Review Comments 譯文

gofmt 所有代碼在發佈前均使用gofmt進行修正。 Comment Sentences(註釋應當是一個完整的句子) 所有的註釋都應該是一個完整的句子。句子應該以主語開頭,句號結尾。 這樣做,能使註釋在轉化成godoc時有一個不

原创 高併發系統設計

高併發系統設計 高併發通用設計方法 Scale-out(橫向擴展) Scale-up(縱向擴展) 緩存 異步 什麼是同步 什麼是異步 分層架構 分層有什麼好處 如何來做系統分層 如何提升系統性能 高併

原创 MySQL 學習筆記(索引)

MySQL 學習筆記(索引) 索引 什麼是索引 索引有哪些優缺點 索引使用場景 索引覆蓋 索引有哪幾種類型 索引的數據結構 B-Tree 索引 哈希索引 哈希索引的限制 空間數據索引(R-Tree) 全文索引

原创 MySQL 學習筆記(Schema、事物)

MySQL 學習筆記(Schema、事物) Schema 設計 數據類型的選擇 整數 實數 字符串類型 BLOB和TEXT 類型 日期和時間類型 MySQL Schema 設計中的陷阱 範式和反範式 範式化通常帶

原创 MongoDB 學習筆記

MongoDB 學習筆記 簡介 MongoDB 將數據存儲爲一個文檔。MongoDB是一個基於分佈式文件存儲的數據庫。 鏈接格式: mongodb://[username:password@]host1[:port1][,host

原创 Redis 常用命令

Redis 是什麼 基於內存的支持持久化 k:v NOSQL 數據庫 用途 緩存、數據庫、消息中間件 RedisDesktopManger 功能 持久化功能 發佈訂閱功能 事務功能 過期鍵功能 複製 集羣 Redis