iT邦幫忙

redis相關文章
共有 154 則文章
鐵人賽 Software Development DAY 16

技術 Day 16:Redis 事務(Transaction)原理與 MULTI, EXEC, DISCARD 實作

在寫 SQL 時大家都聽過 ACID,但在 Redis 裡,事務(Transaction)其實就是把多個命令打包,然後一次性、按順序跑完不被打斷。 今天來實作這...

鐵人賽 Software Development DAY 15

技術 Day 15:實作命令處理 - 整合 List、Hash、Set 與 ZSet 命令

String 指令跑通後,今天換把 List、Hash、Set 和 ZSet 這四個比較麻煩的結構接到 code/command/commands.go。 因為...

鐵人賽 Software Development DAY 14

技術 Day 14:實作命令處理 - 基礎命令與 Key-Value String 操作

昨天把 Command Dispatcher 接起來後,今天就來補真正會被呼叫的 command handler。先從 PING、ECHO 這種基礎命令,以及...

鐵人賽 Software Development DAY 13

技術 Day 13:整合Command Dispatcher與協定整合

前面我在 resp 模組寫了 RESP 解析器,db 模組也建好了記憶體 KV 引擎,但這兩個現在還是各過各的。 今天要在 command 模組裡補上Comma...

鐵人賽 Software Development DAY 12

技術 Day 12:實作跳躍表(Skip List)與有序集合 Sorted Set 命令

終於來到記憶體儲存引擎這一段的尾聲了。今天要碰 Redis 裡很有代表性的資料結構:Sorted Set (有序集合,簡稱 ZSet)。 ZSet 每個成員(M...

鐵人賽 Software Development DAY 11

技術 Day 11:實作核心資料結構 Set 與集合操作命令

Redis 的 Set (集合) 是一個無序且**成員唯一(Unique)**的字串容器。平常開發拿來存標籤(Tags)、IP 白名單或共同好友很方便。 今天來...

鐵人賽 Software Development DAY 10

技術 Day 10:實作核心資料結構 Hash 與欄位操作命令

Redis 的 Hash 很適合存物件資料,不用每次都把整包 JSON 存進去;只改某個欄位時,直接動那個 field 就好。它其實就是 field 到 val...

鐵人賽 Software Development DAY 9

技術 Day 09:實作核心資料結構 List 與雙端操作命令

Redis 的 List 很常拿來做 Message Queue,或是處理需要從頭尾推資料的場景。它本質上是一串二進位安全字串。 今天來做 List,先補最常用...

鐵人賽 Software Development DAY 8

技術 Day 08:過期時間(TTL)與惰性刪除機制深度解析

用過 Redis 的人都知道 EXPIRE 很好用,時間一到資料就不見了。這在快取、驗證碼與臨時鎖等場景中是很重要的特性。 今天就來把 TTL 和惰性刪除(La...

鐵人賽 Software Development DAY 7

技術 Day 07:實作記憶體引擎基礎命令:SET, GET, DEL 與 EXISTS

引擎骨架弄好後,今天直接來實作最基本的 String 操作:SET、GET、DEL 和 EXISTS。 基礎命令的設計與實作 我在 code/db/db.go...

鐵人賽 Software Development DAY 6

技術 Day 06:設計與實作thread-safe 的記憶體儲存引擎

網路和 Parser 搞定後,今天終於要進到重頭戲:記憶體資料庫引擎。 今天先把 Thread-safe 的記憶體儲存引擎做出來,讓後面的命令有地方可以真的讀寫...

鐵人賽 Software Development DAY 5

技術 Day 05:實作 RESP Parser - 解析 Bulk Strings 與 Arrays,完成基礎的 Parser 單元測試

昨天把單行解析補完後,今天換處理 RESP 裡比較容易寫錯的兩個型別:Bulk Strings (二進位安全字串) 與 Arrays (陣列)。這兩個一個要處理...

鐵人賽 Software Development DAY 4

技術 Day 04:實作 RESP Parser - 解析 Simple Strings, Errors 與 Integers

昨天把 Parser 的骨架搭好了,今天就直接來寫解析邏輯吧。 我先挑比較軟的柿子吃,從 RESP 裡三種單行資料型態開始:Simple Strings (簡單...

鐵人賽 Software Development DAY 3

技術 Day 03:RESP 協定介紹與 Parser 基礎架構設計

要自己刻 Redis,第一步當然是要讓 Server 聽得懂 Client 在講什麼。Redis 客戶端與伺服器之間進行通訊時,使用的是一種名為 RESP (R...

鐵人賽 Software Development DAY 2

技術 Day 02:實作高併發 TCP Socket 伺服器與 Graceful Shutdown

寫資料庫引擎之前,網路層得先站穩。Redis 之所以快,底層事件模型佔了很大一部分;我雖然不用在 Go 裡手刻 epoll,但還是得先做出一個可以同時處理多個...

鐵人賽 Software Development DAY 1

技術 Day 01:Redis Clone 專案規劃與 Go 開發環境初始化

為什麼要自己寫一個 Redis? Redis 很多人都用過,拿來做快取、工作佇列、分散式鎖都很順手。但我一直覺得只停在「會用」有點可惜,尤其是它背後的網路 I/...

技術 如何提升電商網站、比價網站和資訊型目錄的載入速度?了解 Redis 物件快取 (Object Caching)?

 FlyingPress 團隊在 2026 年 6 月 24 日公布支援 Redis 物件快取 (Object Caching),這雖然不算非常新型的技術,但對...

技術 筆記:Redis 緩存雪崩(Cache Avalanche)

筆記:Redis 緩存雪崩(Cache Avalanche) 有些 Redis 的快取資料會設定 TTL 來讓它自然的過期,但如果這種會過期的快取資料多,而過期...

技術 筆記:Redis 緩存穿透(Cache Penetration)

筆記:Redis 緩存穿透(Cache Penetration) 在系統架構的實作裡,常為了減輕後端資料庫的負擔,通常會在程式跟資料庫之間隔一層快取層(例:Re...

鐵人賽 Software Development DAY 26

技術 Day 26: 30天打造SaaS產品後端篇-API 速率限制與防濫用機制解析

前情提要 經過 Day 25 的 JWT 與 Session 管理建置,我們已經有了完整的用戶認證機制。今天我們要為 Kyo System 實作企業級的 API...

鐵人賽 Software Development DAY 25

技術 Day 25: 30天打造SaaS產品後端篇-JWT 與 Session 管理

前情提要 經過 Day 24 的 Email 服務建置,我們已經有了完整的使用者溝通管道。今天我們要實作用戶認證系統的後端核心:JWT (JSON Web To...

鐵人賽 Software Development DAY 22

技術 Day 22: 30天打造SaaS產品後端篇-整合測試與 E2E 測試

前情提要 在 Day 21 我們建立了測試框架的基礎設施,使用 Node.js 內建測試執行器來撰寫單元測試。今天我們要更進一步,實作整合測試 (Integra...

鐵人賽 Software Development DAY 20

技術 Day 20: 30天打造SaaS產品後端篇 - 第20天Fastify架構盤點與後端驗證

前情提要 經過前面 19 天的開發,我們已經建立了一個完整的企業級後端 SaaS 服務。今天是 30 天挑戰的 2/3 里程碑,讓我們來看點這 20 天打造的...

鐵人賽 Software Development DAY 18

技術 Day 18: 30天打造SaaS產品後端篇-後端效能優化實作

前情提要 在 Day 17 我們建立了 WebSocket 微服務架構,今天我們要聚焦在後端效能優化。從資料庫連線池管理、查詢優化、快取策略到背景任務處理,我們...

鐵人賽 Software Development DAY 16

技術 Day 16: 30天打造SaaS產品後端篇-即時協作引擎與分散式資料同步架構實作

前情提要 在 Day 15 我們建構了課程模板系統的後端架構,今天我們將實作一個完整的即時協作引擎。這個系統需要支援多用戶同時操作、即時資料同步、衝突檢測與解決...

鐵人賽 Software Development DAY 15

技術 Day 15: 30天打造SaaS產品後端篇-課程模板系統後端架構與批次操作引擎實作

前情提要 在 Day 14 我們建立了基礎的課程管理系統,今天我們將深入實作課程模板系統的後端架構。這個系統不僅要支援複雜的模板管理,還需要處理大量批次操作、衝...

鐵人賽 Cloud Native DAY 15

技術 Go 語言搶票煉金術 Day 15 - 提供服務:用 Gin 暴露你的搶票 API

Go 語言搶票煉金術 Day 15 - 提供服務:用 Gin 暴露你的搶票 API 在 Day 10~Day 14,我們把「主要熱點」搬進 Redis,並用...

鐵人賽 Cloud Native DAY 14

技術 Go 語言搶票煉金術 Day 14 - Redis 的終極武器:Lua Script 的實踐

Day 14 - Redis 的終極武器:Lua Script 的實踐 昨天,我們用 client.Eval() 成功地執行了第一個 Lua 腳本,解決了多個...

鐵人賽 Cloud Native DAY 13

技術 Go 語言搶票煉金術 Day 13 - 原子性的延伸:單一命令不夠用時,如何用 Lua 在 Redis 當中實現

Go 語言搶票煉金術:Day 13 - 原子性的延伸:單一命令不夠用時,如何用 Lua 在 Redis 當中實現 在前幾篇中,我們用 Redis DECRBY...

鐵人賽 Software Development DAY 12

技術 Day 12:30天打造SaaS產品軟體開發篇-健身房會員服務與查詢系統

前情提要 經過 Day 11 的認證服務建立,我們已經有了完整的多租戶身份認證系統。今天我們要實作會員管理服務 (Member Service),這是健身房 S...