原创 Linux下多路複用IO接口epoll/select/poll的區別

select比epoll效率差的原因:select是輪詢,epoll是觸發式的,所以效率高。 Select: 1.Socket數量限制:該模式可操作的Socket數由FD_SETSIZE決定,內核默認32*32=1024. 2.操作限制:

原创 數據庫系統日誌的處理和作用

--內存大小,cpu速度,磁盤速度,磁盤大小這四個因素哪個對數據庫系統來說最重要?也就是說哪個因素是數據庫性能的瓶頸? 其實是磁盤速度。數據庫的作用就是把磁盤中東西讀到內存中然後處理完畢後提交上去,操作系統能管理的內存也就是幾GB,但是

原创 數據庫水平切分的實現原理解析---分庫,分表,主從,集羣,負載均衡器

第1章  引言 隨着互聯網應用的廣泛普及,海量數據的存儲和訪問成爲了系統設計的瓶頸問題。對於一個大型的互聯網應用,每天幾十億的PV無疑對數據庫造成了相當高的負載。對於系統的穩定性和擴展性造成了極大的問題。通過數據切分來提高網站性能,橫

原创 多線程API函數

主要的多線程API 1、線程創建函數: int pthread_create (pthread_t * thread_id,__const pthread_attr_t * __attr, void *(*__start_routine)

原创 lftp下載整個文件夾的命令及舉例

1. >lftp IP 2. >user username password 3. >mirror remotedir localdir/注:          remotedir:將要下載的文件夾名;          loca

原创 strstr和strncmp源碼實現

extern char *strstr(char *s1, char *s2) 用法:#include <string.h>功能: 找出s2字符串在s1字符串中第一次出現的位置(不包括s2的串結束符)返回結果:返回該位置的指針,如找不到,

原创 Memcache的一致性 Hash 算法(Consistent hashing)

consistent hashing 算法早在 1997 年就在論文 Consistent hashing and random trees 中被提出,目前在 cache 系統中應用越來越廣泛; 1 基本場景比如你有 N 個 cache

原创 異步套接字基礎:多路複用、select函數以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

select函數:       系統提供select函數來實現多路複用輸入/輸出模型。原型:        #include sys/time.h>        #include unistd.h>        int select

原创 Sharding與數據庫分區(Partition)的區別

隨着時光流逝,數據庫中的數據表越來越大,服務器已經不堪重負,爲了解決這個問題,提出了數據分區的軟件理念,簡稱sharding。下面就是這一軟件理念的相關介紹。 1.Sharding定義   "Shard" 這個詞英文的意思是"碎片"

原创 CDN原理

要了解CDN的實現原理,首先讓我們來回顧一下網站傳統的訪問過程,以便理解其與CDN訪問方式之間的差別: 由上圖可見,傳統的網站訪問過程爲: 1. 用戶在瀏覽器中輸入要訪問的域名; 2. 瀏覽器向域名解析服務器發出解析請求,獲得此域名對應

原创 路由器與交換機的區別及舉例

一、路由器與交換機的區別       (1)工作層次不同最初的的交換機是工作在OSI/RM開放體系結構的數據鏈路層,也就是第二層,而路由器一開始就設計工作在OSI模型的網絡層。由於交換機工作在OSI的第二層(數據鏈路層),所以它的工作原理

原创 Linux shell 編程基礎

Shell基本語法 像高級程序設計語言一樣,Shell也提供說明和使用變量的功能。對Shell來講,所有變量的取值都是一個字串,Shell程序採用$var的形式來引用名爲var的變量的值。 Shell有以下幾種基本類型的變量。 (1)Sh

原创 gdb 查看堆棧信息、加載core文件、連接到其它進程

當程序被停住了,你需要做的第一件事就是查看程序是在哪裏停住的。當你的程序調用了一個函數,函數的地址,函數參數,函數內的局部變量都會被壓入“棧”(Stack)中。你可以用GDB命令來查看當前的棧中的信息。一、gdb 查看堆棧信息下面是一些查

原创 C語言地址傳遞和值傳遞簡析(基於堆棧的簡析)

值傳遞過程中,被調函數的形參作爲被調函數的局部變量處理,即在內存的堆棧中開闢空間以存放由主調函數放進來的實參的值,從而成爲了實參的一個拷貝。值傳遞的特點是被調函數對形參的任何操作都是作爲局部變量進行,不會影響主調函數的實參變量的值。 而

原创 Socket中listen/accept函數的區別

listen函數 摘要:listen函數使用主動連接套接口變爲被連接套接口,使得一個進程可以接受其它進程的請求,從而成爲一個服務器進程。在TCP服務器編程中listen函數把進程變爲一個服務器,並指定相應的套接字變爲被動連接。 liste