redis分享PPT材料


上次在公司類做了一個redis分享,特別想把ppt上傳上來,好像博客園不支持,那就截圖把

1.簡介

redis是什么:

  redis是一個nosql(not only sql不僅僅只有sql)數據庫,翻譯成中文叫做非關系型型數據庫

為什么使用

1.大量數據的寫處理(磁盤I/O)
2.為有數據更新的表做索引或表結構變更
3.對簡單查詢需要快速返回結果的處理
4.字段不固定時應用(數據結構為半結構化數據

redis分類

Nosql分類:列式數據庫,鍵值數據庫,文檔數據庫,圖數據庫redis是一個內存中的數據結構存儲系統key-value形式

2.redis特點

 

 

 

為什么速度這么快:
1.Redis采用了單線程的模型,減少了線程的上下文切換和競爭
2.Redis是純內存數據庫,IO使用的是多路復用,使一個線程來輪詢描述符,減少了線程上下文的切換,
持久化
持久化功能有效地避免因進程退出造成的數據丟失問題,當下次重啟時利用之前持久化的文件即可實現數 據恢復

3.redis基礎類型

 

 

 http://www.redis.cn/ 更多可以參考官網

4.redsi事務 管道

 

 

 當Redis使用只增文件(AOF:Append-only File)時,Redis能夠確保使用一個單獨的write(2)系統調用,這樣便能將事務寫入磁盤。然而,如果Redis服務器宕機,或者系統管理員以某種方式停止Redis服務進程的運行,那么Redis很有可能只執行了事務中的一部分操作。Redis將會在重新啟動時檢查上述狀態,然后退出運行,並且輸出報錯信息。使用redis-check-aof工具可以修復上述的只增文件,這個工具將會從上述文件中刪除執行不完全的事務,這樣Redis服務器才能再次啟動。

 

 

 5.RDB持久化

(1)Redis 使用 fork 函數復制一份當前進程的副本(子進程)
(2)父進程繼續接收並處理客戶端發來的命令,而子進程開始將內存中的數據寫入硬盤中的臨時文件。
(3)當子進程寫入完所有數據后會用該臨時文件替換舊的RDB文件,至此,一次快照操作完成。
(1)缺點:使用 RDB 方式實現持久化,一旦 Redis 異常退出,就會丟失最后一次快照以后更改的所有數據。這個時候我們就需要根據具體的應用場景,通過組合設置自動快照條件的方式來將可能發生的數據損失控制在能夠接受范圍。如果數據相對來說比較重要,希望將損失降到最小,則可以使用 AOF 方式進行持久化。
(2)優點: RDB 可以最大化 Redis 的性能:父進程在保存 RDB 文件時唯一要做的就是fork 出一個子進程,然后這個子進程就會處理接下來的所有保存工作,父進程無需執行任何磁盤 I/O 操作。同時這個也是一個缺點,如果數據集比較大的時候,fork 可以能比較耗時,造成服務器在一段時間內停止處理客戶端的請求

AOF持久化

 

 

(1)appendfsync always 每次執行寫入都會進行同步這個是最安全但是是效率比較低的方式
(2)appendfsync everysec 每一秒執行
(3)appendfsync no 不主動進行同步操作,由操作系統去執行,這個是最快但是最不安全的方式
使用 Redis 附帶的 redis-check-aof 程序,對原來的 AOF 文件進行修復。
重啟 Redis 服務器,等待服務器載入修復后的 AOF 文件,並進行數據恢復
修復出錯的 AOF 文件

6.主從復制

注意:如果多個Slave斷線了,需要重啟的時候,因為只要Slave啟動,就會發送sync請求和主機全量同步,當多個同時出現的時候,可能會導致Master IO劇增宕機

 7.哨兵模式

 

 

 

 用文字描述一下故障切換(failover)的過程。假設主服務器宕機,哨兵1先檢測到這個結果,系統並不會馬上進行failover過程,僅僅是哨兵1主觀的認為主服務器不可用,這個現象成為主觀下線。當后面的哨兵也檢測到主服務器不可用,並且數量達到一定值時,那么哨兵之間就會進行一次投票,投票的結果由一個哨兵發起,進行failover操作。切換成功后,就會通過發布訂閱模式,讓各個哨兵把自己監控的從服務器實現切換主機,這個過程稱為客觀下線。這樣對於客戶端而言,一切都是透明的

 

 上次在極客時間上的一節redis課程,里面是說如如何更好的使用redis,我感覺很棒

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM