Redis 的 Set (集合) 是一個無序且**成員唯一(Unique)**的字串容器。平常開發拿來存標籤(Tags)、IP 白名單或共同好友很方便。 今天來...
Redis 的 Hash 很適合存物件資料,不用每次都把整包 JSON 存進去;只改某個欄位時,直接動那個 field 就好。它其實就是 field 到 val...
Redis 的 List 很常拿來做 Message Queue,或是處理需要從頭尾推資料的場景。它本質上是一串二進位安全字串。 今天來做 List,先補最常用...
用過 Redis 的人都知道 EXPIRE 很好用,時間一到資料就不見了。這在快取、驗證碼與臨時鎖等場景中是很重要的特性。 今天就來把 TTL 和惰性刪除(La...
引擎骨架弄好後,今天直接來實作最基本的 String 操作:SET、GET、DEL 和 EXISTS。 基礎命令的設計與實作 我在 code/db/db.go...
網路和 Parser 搞定後,今天終於要進到重頭戲:記憶體資料庫引擎。 今天先把 Thread-safe 的記憶體儲存引擎做出來,讓後面的命令有地方可以真的讀寫...
昨天把單行解析補完後,今天換處理 RESP 裡比較容易寫錯的兩個型別:Bulk Strings (二進位安全字串) 與 Arrays (陣列)。這兩個一個要處理...
昨天把 Parser 的骨架搭好了,今天就直接來寫解析邏輯吧。 我先挑比較軟的柿子吃,從 RESP 裡三種單行資料型態開始:Simple Strings (簡單...
要自己刻 Redis,第一步當然是要讓 Server 聽得懂 Client 在講什麼。Redis 客戶端與伺服器之間進行通訊時,使用的是一種名為 RESP (R...
寫資料庫引擎之前,網路層得先站穩。Redis 之所以快,底層事件模型佔了很大一部分;我雖然不用在 Go 裡手刻 epoll,但還是得先做出一個可以同時處理多個...
為什麼要自己寫一個 Redis? Redis 很多人都用過,拿來做快取、工作佇列、分散式鎖都很順手。但我一直覺得只停在「會用」有點可惜,尤其是它背後的網路 I/...
今天開頭就又學了一種新的 function 寫法,該型別專屬的 method,有一點點 class method 的感覺,在 function name 前面指...
map 基本上就是 Python 的 dict,寫過 Python 跟 JavaScript 的我一直以為是 array 的那個 map... type Ver...
More types: structs, slices, and maps.中間有一大部分都是介紹 slice 的各種用法,沒有什麼特別的語法,值得一提的是,看...
這幾天累到連電腦都不想開...這樣不行,今天逼自己哪怕只學一個語法或複習也要看。上次學完之後,無聊開了一個 easy 來寫,才發現自己連 array 都還不會用...
上次學完 for loop,這次接著官方教學往後看,第一個是 switch,switch 倒是沒有太大區別,值得一提的是不用 break,也可以不用條件式 (視...
複習完 package 之後,注意到「輸出文字」的 Println 綁在這個模組內 import "fmt" 想說這個 fmt 是不是類似...
因為有其他語言的經驗,不用從變數、型別、for loop 這樣慢慢學下去,跟 AI 討論了一下,我應該從 Go 的思維模式與生態學起,這時候官方的 A Tour...
前言 一點小咕噥,不重要不用看 機械系畢業後找了一份程式助理的工作,做了2~3年雖然也是有寫到各式各樣的軟體、網頁、服務,但總感覺都還只是摸到表面,也都活在別人...
完整內容請至幹話王 Blog Go Singleflight 實作全攻略:優化 API 消耗、並發控制與監控實務 在開發高併發應用程式(如股票分析機器人)時,我...
到目前為止,我們已經有了 /search、中介層、context/timeout 與錯誤策略。今天目標是: 寫幾個微基準來量測「一小段可重複的關鍵程式」,建立...
📘 小劇場:雜貨店老闆的日常 你是一位經營「Gross 雜貨舖」的小老闆,店裡有一份 Units 表,記錄各種單位轉換(像 dozen, gross 等)。顧客...
⚙ 篇二 一、slice 的底層原理 slice 本質是一個結構: type slice struct { ptr *array // 指到底層陣列...
想像你開了一家小雜貨店: 客人來進貨清單是 [蘋果, 香蕉, 香蕉, 蘋果, 蘋果, 葡萄] 你需要統計每種水果有幾個,而不是只是一次次看到「蘋果」、「香蕉」...
Go 語言搶票煉金術 Day1 -工程師的價值,是將程式碼煉成金礦 在開始之前,想先問一個問題: 我們為什麼不稱之為「Go 語言搶票程式設計」,而要用 煉金術...
完整內容在此, 幹話王_Go synctest:徹底解決並發測試的痛點 Go 語言以 goroutine 和 channel 聞名,併發測試場景卻常常讓人頭痛...
今天想來分享高內聚 (High Cohesion) 與低耦合 (Loose Coupling) 的概念 🔹高內聚 定義:一個模組(或類別)裡的功能彼此高度相關、...
完整內容在此, 幹話王_續談 MCP Server︰Resource、Server Inspector 6 月 DevOps Days 早鳥票售賣中 繼上一篇...
完整內容在此, 幹話王_認識 MCP Go 工具 6 月 DevOps Days 盲鳥票售賣中 第一次知道 Mark3labs 開發的 MCP Go 工具是因為...
完整內容在此, 幹話王_Grafana GitLab 與 SonarQube 整合 GitHub Repository連結 GitLab 與 SonarQube...