原创 說Redis

一:簡單介紹 Redis(Remote Dictionary Server 遠程字典服務器) key-value 內存數據庫 key是一個string value可以是string,list,hash,set,zset,bitm

原创 Redis網絡庫源碼分析(2)之啓動服務器

一、從main開始 main函數定義在server.c中,它的內容如下: //server.c int main() { signal(SIGPIPE, SIG_IGN); //忽略SIGP

原创 計算機網絡漫談之OSI七層模型和TCP/IP四層模型

在 什麼是網絡? 中,你已經知道計算機網絡是物理連接的“局域網”和工作於這個局域網上的“網絡協議”,並且我們的重心是網絡協議。有關網絡協議,按照目前的分層方式主要有兩種,一種是OSI七層模型(忽略它,沒什麼卵用 :)),一種

原创 計算機網絡漫談之應用層

有關網絡我們討論到今天,整個網絡框架我們已經搭建起來了。我們說了數據鏈路層、網絡層、傳輸層,其實應用層就是在我們之前討論的基礎上使用下面這些層,我打算舉例HTTP協議,也是應用層非常重要的協議,”應用層”的作用,就是規定應用程序的

原创 歡迎加入XiyouLinuxGroup郵件列表

一:爲什麼要使用郵件列表? 與QQ,微信等即時通訊的交流方式相比,使用郵件列表交流有以下好處: 保存性好,易於閱讀。它能將一個問題討論的過程完全保存下來,但是QQ的話,聊天記錄很容易就刷沒了,再也無法找到。小組郵件列表裏在200

原创 GDB 調試技巧(不斷更新中......)

一、break到不同類的同名函數 方法: 在函數前面加類名以及作用域運算符 eg : break A::func //break 到類A的func函數 程序如下: //gdb_test.cpp #in

原创 計算機網絡漫談之數據鏈路層

讓我們從整個協議最底層開始,先來看看數據鏈路層主要都做了哪些事: 首先上面兩臺電腦需要通信,先將它們物理連接起來,然後就可以傳送高低電位了,高電位表示1,低電位表示0。但是單純的0和1沒有任何的意義,我們必須人爲的規定解讀方式,

原创 計算機網絡漫談之傳輸層

之前我們通過學習 數據鏈路層 和 網絡層 知道了一個計算機有兩個地址:MAC地址和IP地址,有了MAC地址和IP地址,我們已經可以在互聯網上任意兩臺主機上建立通信。 現在面臨的問題是,同一臺主機上有許多程序都需要用到網絡。比如

原创 ShardedJedisPipeline 源碼分析

一、什麼是pipeline?什麼是ShardedJedis? 由於pipeline和ShardedJedis的介紹和源碼分析在網上已經有了,本文就不再贅述,直接給出鏈接: pipeline的介紹: http://blog.csd

原创 Redis網絡庫源碼分析(1)之介紹篇

一、前言 Redis網絡庫是一個單線程EPOLL模型的網絡庫,和Memcached使用的libevent相比,它沒有那麼龐大,代碼一共2000多行,因此比較容易分析。其實網上已經有非常多有關這個網絡庫的分析了,但是我覺得它們的不足

原创 Redis網絡庫源碼分析(3)之ae.c

一、aeCreateEventLoop & aeCreateFileEvent 上一篇文章中,我們已經將服務器啓動,只是其中有些細節我們跳過了,比如aeCreateEventLoop函數到底做了什麼? 接下來我們要分析ae.c文

原创 這些年我@yangbodong22011參與的開源

2020年第一天,水一篇博客,對新年起碼的尊重。這裏記錄下我參與的開源項目情況。 Jedis 修復了Jedis transient 關鍵字造成了序列化錯誤(https://github.com/xetorthio/jedis/

原创 connect & send 在三次握手過程中的有趣問題

一、問題回顧 面試的時候被問到的問題,原問題是: 1:寫一下socket網絡編程服務端和客戶端常用的函數。 2:如果服務端在listen之後沒有accept,那客戶端的connect會返回嗎?爲什麼? 3:此時調用s

原创 Java Logback簡易教程

本作品採用知識共享署名-非商業性使用 4.0 國際許可協議進行許可。 一、前言 本文以一個簡單的項目爲例,一步步展示logback的同步和異步配置方法,並且配置的日誌要求滿足阿里巴巴Java開發手冊-日誌規約 ,因爲對於線上服務