redis sever 啟動時,會把ae_readable
事件關聯至accepttcphandler
方法,向eventloop註冊。
當client連線server時,會觸發redis sever的ae_readable事件為就緒狀態。
當ae_readable
事件為就緒態時,會在aemain中對其進行處理,並執行繫結的accepttcphandler方法。在accepttcphandler方法中,會建立client例項,並將client的ae_readable事件和readqueryfromclient方法繫結,向eventloop註冊。
client向server傳送命令,觸發client的ae_readable事件變為就緒態。
在aemain中對ae_readable變為就緒狀態的事件進行處理。執行繫結的readqueryfromclient方法,並執行相應的命令。在命令執行過後準備傳送結果給client之前,會把client的ae_writeable事件和sendreplytoclient方法繫結, 向eventloop註冊,同時傳送命令,觸發ae_writeable事件。
在aemain中對ae_writeable的事件進行處理,執行繫結的sendreplytoclient方法,把命令傳送給client,同時刪除向eventloop註冊的ae_writeable事件。
伺服器與客戶端
建立socket操作,建立流式套接字,返回套接字型大小socksrv socket socket int af,int type,int protocol 第乙個引數,指定位址簇 tcp ip只能是af inet,也可寫成pf inet socket socksrv socket af inet,s...
客戶端與伺服器
cs與bs 軟體使用方式上的兩種劃分 c s client server pc客戶端與伺服器架構 特點 在伺服器當中就主要是乙個資料庫,把所有業務邏輯都交給客戶端來完成 優點 較為安全,使用者介面豐富,客戶體驗好 缺點 每次公升級都要重新安裝,針對不同的作業系統開發,可移植性差 b sbrowser...
Redis客戶端和伺服器
一 redis客戶端 redisserver結構中儲存了所有客戶端的狀態資訊。struct redisserver 命令client list可以列出目前所有連線到伺服器的客戶端。命令client setname name 可以給客戶端設定乙個名字。偽客戶端 由於伺服器必須接收來自客戶端的命令以執行...