Golang 作為廣泛用於服務端和雲計算領域的編程語言,tcp socket 是其中至關重要的功能。無論是 WEB 服務器還是各類中間件都離不開 tcp socket 的支持。 Echo 服務器 拆包與粘包 優雅關閉 與早期的每個線程持有一個 socket 的 block ...
本文是 用 Golang 實現一個 Redis 系列文章第二篇,本文將分別介紹Redis 通信協議 以及 協議解析器 的實現,若您對協議有所了解可以直接閱讀協議解析器部分。 Redis 通信協議 Redis 自 . 版本起使用了統一的協議 RESP REdis Serialization Protocol ,該協議易於實現,計算機可以高效的進行解析且易於被人類讀懂。 RESP 是一個二進制安全的文 ...
2019-11-24 17:11 0 668 推薦指數:
Golang 作為廣泛用於服務端和雲計算領域的編程語言,tcp socket 是其中至關重要的功能。無論是 WEB 服務器還是各類中間件都離不開 tcp socket 的支持。 Echo 服務器 拆包與粘包 優雅關閉 與早期的每個線程持有一個 socket 的 block ...
JSON介紹 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易於人閱讀和編寫。同時也易於機器解析和生成。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition ...
有時候,我們為了屏蔽一些底層的差異,我們會要求上游系統按照某種約定進行傳參。而在我們自己的系統層則會按照具體的底層協議進行適配,這是通用的做法。但當我們要求上游系統傳入的參數非常復雜時,也許我們會有一套自己的語法定義,用以減輕所有參數的不停變化。比如sql協議,就是一個一級棒的語法,同樣是調用 ...
本文是使用 golang 實現 redis 系列的第五篇, 將介紹如何使用跳表實現有序集合(SortedSet)的相關功能。 跳表(skiplist) 是 Redis 中 SortedSet 數據結構的底層實現, 跳表優秀的范圍查找能力為ZRange和ZRangeByScore等命令提供了支持 ...
本文是使用 golang 實現 redis 系列的第六篇, 將介紹如何實現一個 Pipeline 模式的 Redis 客戶端。 本文的完整代碼在github.com/hdt3213/godis/redis/client 通常 TCP 客戶端的通信模式都是阻塞式的: 客戶端發送請求 -> ...
上文【調用wireshark(一):初次嘗試 http://www.cnblogs.com/zzqcn/archive/2013/05/11/3072362.html 】已經介紹了調用wireshark的原理,並給出一個簡單示例。本文要給出真正調用wireshark協議解析函數的方法 ...
1.為什么需要自己實現參數解析器 我們都知道在有注解的接口方法中加上@RequestBody等注解,springMVC會自動的將消息體等地方的里面參數解析映射到請求的方法參數中。 如果我們想要的信息不完全是來自消息體等地方,比如說一部分是消息體,一部分是消息頭,甚至一部分從配置中獲取 ...