【Redis詳解基礎篇一】
阿新 • • 發佈:2019-01-05
前言
由於專案的原因所以需要深入Redis學習,所以我會不定期的更新~
什麼是Redis
他是開源的BCD協議,使用C編寫的,他是把資料儲存在記憶體中的,使用的是no only sql 資料庫,是鍵值對的方式
Redis的資料型別
redis支援非常多的資料型別,字串,雜湊,列表,集合,有序集合,範圍查詢
支援語言
java,C++,C,Python
Redis的使用用途
- 快取
- 中介軟體
Nosql資料分類
KV、文件、列、圖、物件、xml
Redis的歷史
最開始發明redis是為了解決網路負載問題才開發出的redis,同時也是為了解決mysql帶來的缺陷,大量的io輸入輸出
最開始redis出現的原因是下面的架構圖
由於網站的增多,使用者訪問量的增多,導致有大批量的輸入和輸出,當時採用的是mysql資料,mysql一般是把資料儲存在硬碟上的。所以導致大量的輸入輸出。這個時候操作網站的時候會非常的卡,效能非常低,所以這個時候就準備自己寫一個數據庫,基於的是key value形式的,並且他是儲存在記憶體中的,所以減少了io輸入輸出
Redis與Mysql對比
對於mysql,當我們想查詢資料的時候,首先我們現在記憶體中找到索引值,然後通過索引值去硬碟上查詢,但是如果訪問量大的時候會導致io阻塞
針對於redis我們把資料直接存放到記憶體中,不對硬碟進行操作
Redis的功能
- 持久化:把記憶體中的資料保留在硬碟上,起到備份的作用
- 釋出訂閱:把訊息同時傳送到客戶端,使用廣播的形式:例如卡槽的形式
- 過期鍵值:設定Redis儲存中該key儲存的時間 -
- 事物功能:原子性,使用樂觀鎖(只在提交的時候檢查)
- 主從複製:多個複製品,減少壓力,安全
- sentinel哨兵:用於redis的監控,則自動轉移
- redis叢集|:一部分是讀一部分是寫,減少了壓力