天天看點

《redis 開發與運維》學習筆記:第一章

redis的特性

1.速度快,官方展示的讀寫性能是10萬/s,本人的本地測試達到為3-4萬/s,有以下四點原因:

  • 所有資料都是存放在記憶體中的
  • 它是由C語言實作的
  • 使用了單線程架構,防止了多線程可能産生的競争問題
  • 源代碼的精細打磨,代碼性能高且優雅

2.基于鍵值對的資料結構伺服器。 它提供5中資料結構:字元串、哈希、清單、有序清單、集合,同時在字元串的基礎上演變出了位圖 (Bitmap)和HyperLogLog兩種神器的資料結構

3.豐富的功能

  • 提供了鍵過期的功能,可以用來實作緩存
  • 提供了釋出訂閱的功能,可以用來實作消息系統
  • 支援Lua腳本功能,可以創造出更多的指令
  • 提供了簡單的事務功能
  • 提供了流水線功能,用戶端能夠将一批指令一次性傳到Redis,減少了網絡的開銷

4.簡單穩定,主要表現在三個方面:源代碼少,使用單線程模型,不需要依賴作業系統的類庫。

5.用戶端語言多。主流的程式設計語言如java、python、C,C++,NodeJs都可以很友善的介入到Redis

6.持久化。提供RDB和AOF兩種政策将雷村的資料儲存到硬碟中,避免斷電機器故障等造成記憶體資料丢失的情況

7.主從複制,實作了多個相同資料的Redis副本

8.高可用和分布式

Redis的使用場景

1.緩存(提供了鍵值過期時間的設定)

2.排行榜系統(提供了清單和有序集合資料結構)

3.計數器系統(天然支援計數功能,且計數性能好)

4.社交網絡(提供的資料結構可以比較容易的實作 贊踩,粉絲,共同好友,推送,下拉重新整理等社交平台的必備功能)

5.消息隊列系統(提供了釋出訂閱功能和阻塞隊列的功能)

Redis不可以做什麼

資料規模角度:不支援資料量非常大的

資料冷熱角度:冷資料的存儲不适宜