anet.h anet.c
主要包含以下幾個封裝函式(這裡僅介紹關於tcp socket的封裝函式)
anettcpconnect:建立socket並呼叫底層的connect進行連線。
anettcpnonblockconnect:和anettcpconnect功能類似,但是設定連線的socket為非阻塞的。
anetread:呼叫底層的read對socket中的內容進行讀取。
anetwrite:呼叫底層的write向socket寫入內容。
anettcpserver:建立監聽socket,並呼叫bind和listen啟動伺服器開始監聽埠。
anettcpaccept:呼叫accept,接收客戶端的連線。
當然還有其他的輔助的函式,像是anetresolve解析位址,以及設定socket屬性的一些函式如anetnonblock anettcpnodelay anettcpkeepalive anetpeertostring等。
Redis 原始碼學習之 Redis 事務Nosql
redis事務提供了一種將多個命令請求打包,然後一次性 按照順序地執行多個命令的機制,並且在事務執行的期間,伺服器不會中斷事務而去執行其他不在事務中的命令請求,它會把事務中所有的命令都執行完畢才會去執行其他的命令。howredis中提供了multi discard exec watch unwatc...
redis原始碼學習之跳躍表
跳躍表對於我來說是乙個比較陌生的資料結構,因此花了一上午的時間先看了一蛤mit的公開課。網易雲課堂 mit跳躍表 什麼是跳躍表,有乙個很簡單的例子,有些地方的火車站跟高鐵站是同乙個站,有的地方只有火車站 假設現在的線路是a b c d e。其中a和c剛剛說的高鐵和火車站在一塊,其他的只有火車站,考慮...
redis原始碼學習之整數集合
intset的底層實現比較簡單,因為它所有的key都是整型,只是整型分為16bits 32bits和64bits這三種型別,當新插入的元素比當前集合中所有數還要長時,就要進行公升級了,這部分原始碼很簡單,主要就是公升級部分。intset 的編碼方式 define intset enc int16 s...