原创 nginx rewirte 和 location

什麼是rewrite ? rewrite 顧名思義就是重寫的意思,主要是針對URL進行重寫,採用方法是使用PCRE(Perl Compatible Regular Expressions) perl兼容正則表達式語法進行規則匹配。

原创 golang 字符串拼接性能比較

背景 最近在做一個服務發現/註冊的agent, 各個服務需要通過這個agent來註冊自己的服務,在完成 開發後,測試性能時發現性能達不到要求,通過pprof 來確認cpu主要耗費在gc上,分析結果主要是由於字符串拼接導致,故需要測

原创 linux 循環設備 loop device操作實踐

基本概念 循環設備 與 迴環設備 如何使用loop設備 把文件掛載爲一個文件系統 卸載 基本概念 在類Unix系統中,/dev/loop(或稱vnd (vnode disk)、lofi(循環文件接口))是一種僞設備

原创 nginx-lua worker 之間數據共享

問題 最近工作中做性能優化用到Lua (openresty), 由於調研不深入,導致上線時濫用了全局變量導致數據共享,數據錯亂,所以有必要整理一下這個知識點。 nginx worker之間數據共享 如果要在同一個 nginx wo

原创 go 中 make 與 new 的區別

適用範圍:make 只能創建內建類型(slice map channel), new 則是可以對所有類型進行內存分配 返回值: new 返回指針, make 返回引用 填充值: new 填充零值, make 填充非零值

原创 從建水廠看簡單工廠、工廠方法模式和抽象工廠之間的區別

從下面一個例子看一下幾個模式之間的區別,代碼很簡單,道理很明顯; 有一個程序員 小A 工作了幾年賺了一些錢,厭倦了大都市的緊張節湊,想回家開一個水廠,過一下舒適的日子。可是開工廠也需要一定的管理方法,小A 同志畢竟是程序員啊,設計

原创 單鏈表反轉

反轉一個單鏈表 /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * }

原创 grep 命令各參數詳解帶例子

在工作中經常用到grep命令,在此做一下總結。 grep 用於匹配文件中符合條件的行。 用於測試的文本 > cat test.txt aaaa bbbbb cccc dddd eeeeeee ffff 各個選項 -A -- afte

原创 effective go 筆記

文章目錄格式化註釋命名獲取器接口名字駝峯記法分號forswitch函數可命名返回結果DeferDatanew 與 make數組切片map打印參考 格式化 golang 提供了gofmt程序(也可以使用go fmt,它以包爲處理對象而非