redis學習小結

來源:互聯網
上載者:User

redis短小精悍,系統中的瑞士軍刀。研究了它的原始碼,收穫頗多。

1:網路架構

2:各種資料結構的精巧實現

3:持久化

4:複製

 

網路架構

      redis網路架構蠻簡單的,redis自己實現了一個事件庫,總的架構是:基於事件的單進程。一般大家都覺得現在伺服器都是多進程或多線程的,單進程的效能不行。但redis恰恰不同,他就是單進程,而且效能很好。我個人覺著原因有下面幾點:

1、redis的記憶體結構非常複雜,多線程不可避免要加鎖,加鎖是很大的開銷,而單進程避免了這。

2、redis處理的資料的特點,redis所有資料都在記憶體中,而且每條資料一般很小的,這樣每次訪問或尋找資料花費的時間很少的,所以在服務端串列處理也行得通。

 

各種資料結構的精巧實現

       這是redis最具有特色的地方,redis不噹噹是key-value,它也實現了其它的資料結構list, hash,set,sort set。實現這些資料結構,並不難,難得是怎樣用最少的記憶體空間來實現這些結構。比如:“123456”這個字串儲存需要6個位元組(不算0),而123456這個數只需要4個位元組,redis就會把“123456”這樣的當作整數儲存;在hash表中,如果hash表中的item很少,其實就沒必要用hash表在儲存,因為一個hash表的額外開銷大,對於hash表中item很少的情況,直接使用順序表格儲存體,這種情況,順序表中尋找也是很快的。這樣的技巧在redis用的很多,其目的就是儘可能減少記憶體使用量。

 

持久化

http://redis.io/topics/persistence

持久化有兩種方式:RDB和AOF(append of file)

RDB就是把資料庫把每個時候的鏡像寫到磁碟上,這種優點是:伺服器載入資料快,傳輸效率高;缺點是肯能會遺失資料,而且耗時。

AOF就是當對資料庫修改時,就記錄下來。

複製

http://redis.io/topics/replication

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.