原创 Redis源碼分析之SET流程

本篇分析Redis 如何處理set指令 Client 客戶端解析用戶輸入、構造指令 redisFormatSdsCommandArgv() redisAppendCommandArgv() cliSendCommand() iss

原创 Redis源碼分析之HSET流程

本篇分析Redis 如何處理hset指令 數據結構 首先,hset不同於set,set是存儲在dict,即redis字典裏面,畢竟set只是簡單的kv類型數據。 hset存儲的是複雜的數據結構,使用了壓縮表ziplist,例如 h

原创 kprobe 的 3 種使用

知識背景:會編寫基礎內核模塊 kprobe用處:用來跟蹤、記錄、打樁。最常見的使用就是需要打印內核函數的執行流程,比如排查問題時、或者學習內核流程時需要用到。 準備工作:找一份和自己linux系統相同版本的源碼(方法自行Goog

原创 通過splice完成socket代理零拷貝

splice 的應用 通常,一個反向代理服務器,需要做轉發處理,例如流量模型如下: client -> proxy -> server 客戶端和 proxy建立socket,然後proxy和server建立socket 下面這

原创 LLVM - 生成for循環

1、生成函數 2、使用Phi表達式實現for循環 3、本例中,KaleidoscopeJIT源碼位於./llvm-8.0.1.src/examples/Kaleidoscope/include/KaleidoscopeJIT.h

原创 Redis源碼分析之SDS

Redis源碼分析之SDS redis使用的sds源碼,由另一個git庫管理,獨立於redis之外,可以獨立看待:https://github.com/antirez/sds ,其好處,再其主頁上說的很清楚了,本文是用來分析sds

原创 LLVM - 生成加法

本例中KaleidoscopeJIT在 ./llvm-8.0.1.src/examples/Kaleidoscope/include/KaleidoscopeJIT.中 1、LLVM生成函數 2、LVVM生成加法 3、LLVM j

原创 LLVM - 生成 if-else 以及 PH

1、生成函數 2、函數有4個basic block,一個entry,一個 if-then 另一個 if-else,最後一個是因爲需要使用ph,所以創建一個merge。 3、創建ph來處理if-else,相關概念 http://en

原创 LLVM - 生成局部變量

接上面一篇:https://wonderful.blog.csdn.net/article/details/106902005 上面一篇實現瞭如下函數,但是 都是對入參a的操作 double myfor(double a) {

原创 MQTT v5 (MQTT 5.0) 新特性介紹

MQTT v5 (MQTT 5.0) 新特性介紹 項目中逐步完成了 MQTT 5.0的開發,這裏介紹下MQTT 5.0 的一些新特性 MQTT 5.0 規範見:http://docs.oasis-open.org/mqtt/mqt

原创 通過代碼獲取Linux nameserver(域名服務器ip)

通過代碼獲取Linux nameserver(域名服務器ip) /etc/resolv.conf 首先,/etc/resolv.conf定義了機器的域名服務器ip,例如 nameserver 1.1.1.1 nameserver

原创 Nginx 的子請求(subrequest)原理分析

Nginx 的子請求(subrequest)原理分析 Nginx 的子請求設計其依託於自身的access階段,實現了對指定url發起旁路請求的功能,通常用來鑑權、鏡像等功能。當然還有其他用法這裏不一一贅述,通常用戶使用的接口有如內

原创 RSA的PSCK1 和 PSS 加密、簽名封裝以及填充方式和實例程序

RSA的PSCK1 和 PSS 加密、簽名封裝以及填充方式 SSA = Signature Scheme with Appendix PSS = Probabilistic Signature Scheme ES = Enc

原创 各種加密模式在TLS協議中的運用 3 (AEAD:GCM模式)

GCM,不知道該如何說起,因爲涉及到羣論、有限域等,先寫個大概,有機會再補。 域 就是我們常見的一個集合,集合中的元素可以進行加減乘除,除了0以外的元素都有逆元。 例如實數域,R = (…,-1, 0, 1, 2, 3, 4 …)

原创 PSK在TLS中的應用

PSK在TLS中的應用 之前搞TLS的過程中,PSK的概念有所瞭解,但是一直覺得他沒什麼用處,就大致看了一下實現,沒深究。但是TLS1.3中居然設計到了PSK的概念,我想有必要在這裏總結一下,以免忘記。(其實就我個人而言,要理解T