redis知識點彙總

2021-10-05 21:59:57 字數 2341 閱讀 1704

1. redis的應用場景 [1]

1.1 熱點資料的快取 ---> 訪問速度快、支援的資料型別比較豐富;

1.2 限時業務的運用 ---> 可以使用expire命令設定乙個鍵的生存時間,到時間後redis會刪除它;

1.3 計數器相關問題 ---> incrby命令可以實現原子性的遞增;

1.4 排行榜相關問題 ---> 關係性資料庫在排行榜方面查詢速度普遍偏慢,克借助redis的dsortedset進行熱點資料的排序;

1.5 分頁、模糊查詢 ---> zrangebylex key min max [limit offset count]

2. redis支援的資料型別(重點)[2]

redis支援五種資料型別:string(字串)、hash(雜湊)、list(列表)、set(集合) 及zset(sorted set:有序集合)。

3. zset跳表的資料結構(重點)[3]

跳表:鍊錶加多級索引的結構;

跳表的作用:提高效率;

4. redis的資料過期策略(重點)[4]

定時刪除、惰性刪除、定期刪除;

5. redis的lru過期策略的具體表現 [5]

6. 如何解決redis快取雪崩,快取穿透問題 [6]

快取穿透:惡意訪問快取中不存在的key,導致大量請求直接落到資料庫中;

快取雪崩:快取在同一時間大量鍵過期(失效),接著來一大波請求瞬間落在了資料庫中導致連線異常;

7. redis的持久化機制(重點)

rdb持久化機制,對redis中的資料執行週期性的持久化;

7.1 比較

> rdb資料做冷備,在最壞的情況下,提供資料恢復的時候,速度比aof快;

> rdb,每次寫,都是直接寫redis記憶體,只是在一定的時候,才會將資料寫入磁碟中;

> aof,每次都是要寫檔案的,雖然可以快速寫入os cache中,但是還是有一定的時間開銷的,速度肯定比rdb略慢一些;

> 相對於aof持久化機制來說,直接基於rdb資料檔案來重啟和恢復redis程序,更加快速;

rdbaof

優點1.rdb會生成多個資料檔案,每個資料檔案都代表了

某乙個時刻中redis的資料

2. rdb對redis對外提供的讀寫服務,影響非常小,可

以讓redis保持高效能

3. 相對於aof持久化機制來說,直接基於rdb資料檔案

來重啟和恢復redis程序,更加快速

1.aof可以更好的保護資料不丟失

3. aof日誌檔案即使過大的時候,出現後台重寫操作,

也不會影響客戶端的讀寫

4. aof日誌檔案的命令通過非常可讀的方式進行記錄,

這個特性非常適合做災難性的誤刪除的緊急恢復

缺點1. 如果想要在redis故障時,盡可能少的丟失資料,那麼

rdb沒有aof好

2. rdb每次在fork子程序來執行rdb快照資料檔案生成

的時候,如果資料檔案特別大,可能會導致對客戶端提供

的服務暫停數毫秒,或者甚至數秒

1.對於同乙份資料來說,aof日誌檔案通常比rdb資料

快照檔案更大

2. 對於同乙份資料來說,aof日誌檔案通常比rdb資料

快照檔案更大

3. 以前aof發生過bug,就是通過aof記錄的日誌,進行

資料恢復的時候,沒有恢復一模一樣的資料出來

4. 唯一的比較大的缺點,其實就是做資料恢復的時候,會

比較慢,還有做冷備,定期的備份,不太方便,可能要自己

手寫複雜的指令碼去做,做冷備不太合適

7.2  總結

總結1.不要僅僅使用rdb,因為那樣會導致你丟失很多資料

2.也不要僅僅使用aof,因為那樣有兩個問題,第一,你通過aof做冷備,沒有rdb做冷備,

來的恢復速度更快; 第二,rdb每次簡單粗暴生成資料快照,更加健壯,可以避免aof這種復

雜的備份和恢復機制的bug

3. 綜合使用aof和rdb兩種持久化機制,用aof來保證資料不丟失,作為資料恢復的第一選擇;

用rdb來做不同程度的冷備,在aof檔案都丟失或損壞不可用的時候,還可以使用rdb來進行快

速的資料恢復

8. redis的管道pipeline

資料報從客戶端傳輸到服務端,以及客戶端從服務端獲得相應都需要花費一些時間。這段時間就成為往返時延(round trip time),管道可以一定程度上縮短往返時間,提高效能;

【注】> 原子性操作

> redis的 sortedset 操作

> 關係型資料庫 與 非關係型資料庫 的區別

【參考文獻】

[1] 

[2] 

[3] 

[4] 

[5] 

[6] 

演算法知識點彙總

1.求陣列元素之間相鄰的元素個數或者求字串的長度 指向同乙個陣列的不同元素的兩個指標可以相減,其差便是兩個指標之間相隔的元素個數。例如在乙個字串中,讓乙個指向該串的首元素,讓另乙個指向字串的結束符,兩個指標相減,其差便是字串的長度 2.怎樣判斷兩個指標指向的是陣列的同乙個元素?指標可以互相比較。如指...

小知識點彙總

1 為什麼乙個數的各位數之和可以被3整除時,這個數就可以被3整除 設乙個n位數number,從個位起每一位為a1 an 則number a1 a2 10 a3 10 2 an 10 n 1 1 先證必要性 如果number的各位數之和是3的倍數,則a1 a2 an 3k k為正整數 2 由 2 得a...

Hadoop ZooKeeper知識點彙總

echo 顯示出jdk的安裝目錄 echo 2 myid 把2寫到myid檔案 覆蓋原內容 cat myid 檢視myid檔案的內容 zkserver.sh start 啟動zookeeper zkserver.sh status 檢視zookeeper的啟動狀態 netstat nltp 檢視埠占...