redis的八大特性

來源:互聯網
上載者:User

標籤:儲存   簡單   ffffff   效率   51cto   發布   sha   images   重要   

1.速度快

正常情況下,Redis執行命令的速度非常快,官方給出的數字是讀寫效能可以達到10萬/秒,當然這也取決於機器的效能,但這裡先不討論機器效能上的差異,只分析一下是什麼造就了Redis除此之快的速度,可以大致歸納為以下三點:

  • Redis的所有資料都是存放在記憶體中的,所以把資料放在記憶體中是Redis速度快的最主要原因。
  • Redis是用C語言實現的,一般來說C語言實現的程式“距離”作業系統更近,執行速度相對會更快。
  • Redis使用了單線程架構,預防了多線程可能產生的競爭問題。
2.基於索引值對的資料結構伺服器

幾乎所有的程式設計語言都提供了類似字典的功能,例如Java裡的map、Python裡的dict,類似於這種組織資料的方式叫作基於索引值的方式,與很多索引值對資料庫不同的是,Redis中的值不僅可以是字串,而且還可以是具體的資料結構,這樣不僅能便於在許多應用情境的開發,同時也能夠提高開發效率。Redis的全稱是REmote Dictionary Server,它主要提供了5種資料結構:字串、雜湊、列表、集合、有序集合。

3.豐富的功能

除了5種資料結構,Redis還提供了許多額外的功能:

  • 提供了鍵到期功能,可以用來實現緩衝。
  • 提供了發布訂閱功能,可以用來實現訊息系統。
  • 支援Lua指令碼功能,可以利用Lua創造出新的Redis命令。
  • 提供了簡單的事務功能,能在一定程度上保證事務特性。
  • 提供了流水線(Pipeline)功能,這樣用戶端能將一批命令一次性傳到Redis,減少了網路的開銷。
4.簡單穩定

Redis的簡單主要表現在三個方面。

  • Redis的源碼很少。
  • Redis使用單執行緒模式,這樣不僅使得Redis服務端處理模型變得簡單,而且也使得用戶端開發變得簡單。
  • Redis不需要依賴於作業系統中的類庫(例如Memcache需要依賴libevent這樣的系統類別庫),Redis自己實現了事件處理的相關功能。
    Redis雖然很簡單,但是不代表它不穩定。維護的上千個Redis為例,沒有出現過因為Redis自身bug而宕掉的情況。
5.用戶端語言多

Redis提供了簡單的TCP通訊協定,很多程式設計語言可以很方便地接入到Redis,並且由於Redis受到社區和各大公司的廣泛認可,所以支援Redis的用戶端語言也非常多,幾乎涵蓋了主流的程式設計語言,例如Java、PHP、Python、C、C++、Nodejs等。

6.持久化

通常看,將資料放在記憶體中是不安全的,一旦發生斷電或者機器故障,重要的資料可能就會丟失,因此Redis提供了兩種持久化方式:RDB和AOF,即可以用兩種策略將記憶體的資料儲存到硬碟中()這樣就保證了資料的可持久性。

7.主從複製

Redis提供了複製功能,實現了多個相同資料的Redis副本(),複製功能是分布式Redis的基礎。

8.高可用和分布式
Redis從2.8版本正式提供了高可用實現Redis Sentinel,它能夠保證Redis節點的故障發現和故障自動轉移。Redis從3.0版本正式提供了分布式實現Redis Cluster,它是Redis真正的分布式實現,提供了高可用、讀寫和容量的擴充性。

redis的八大特性

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.