網(wǎng)站建設(shè)發(fā)展方向北京seo課程培訓(xùn)
前言
Redis 是一款內(nèi)存級的數(shù)據(jù)庫,憑借其卓越的性能,幾乎成為每位開發(fā)者的標(biāo)配工具。
雖然 Redis 包含大量需要掌握的知識,但其中的熱點(diǎn)知識并不多。今天,『知行』就和大家分享一些 Redis 中的熱點(diǎn)知識。
Redis 數(shù)據(jù)結(jié)構(gòu)
Redis 中常用的數(shù)據(jù)結(jié)構(gòu)大致可分為兩類:
- 核心類型:String、Hash、List、Set、Zset(Sorted Set)
- 擴(kuò)展類型:Bitmap、Geospatial、Streams、HyperLogLog
鍵過期策略
Redis 中的鍵過期策略主要用于處理設(shè)置了過期時間(TTL)的鍵的自動刪除,確保內(nèi)存資源合理利用。
在 Redis 中,鍵過期策略包括兩種:
- 惰性刪除:訪問鍵時檢查是否過期
- 定期刪除:后臺定期檢查鍵是否過期
鍵驅(qū)逐策略
Redis 的鍵驅(qū)逐策略用于在內(nèi)存達(dá)到限制時決定哪些數(shù)據(jù)應(yīng)該被刪除。
常見的 Redis 鍵驅(qū)逐策略包括:
- noeviction(默認(rèn)):不刪除鍵,直接拒絕寫入操作(返回錯誤);
- allkeys-lru:從所有鍵中,刪除 最近最少使用 的鍵;
- allkeys-lfu:從所有鍵中,刪除 最不頻繁使用 的鍵;
- allkeys-random:從所有鍵中,隨機(jī)刪除 鍵;
- volatile-lru:從設(shè)置了過期時間的鍵中,刪除 最近最少使用 的鍵;
- volatile-lfu:從設(shè)置了過期時間的鍵中,刪除 最不頻繁使用 的鍵;
- volatile-random:從設(shè)置了過期時間的鍵中,隨機(jī)刪除 鍵;
- volatile-ttl:從設(shè)置了過期時間的鍵中,刪除 剩余生存時間最短 的鍵;
主從全量同步
Redis 主從全量同步是當(dāng)從節(jié)點(diǎn)首次連接或數(shù)據(jù)差異過大時,主節(jié)點(diǎn)生成 RDB 快照并傳輸給從節(jié)點(diǎn)的過程。
全量同步雖然保證數(shù)據(jù)完整,但資源消耗較大,需要調(diào)整積壓緩沖區(qū)大小、啟用無盤復(fù)制等方式優(yōu)化。
主從增量同步
Redis 增量同步是指在主從復(fù)制中,主節(jié)點(diǎn)僅將數(shù)據(jù)的增量部分同步給從節(jié)點(diǎn)。
增量同步是 Redis 主從復(fù)制的核心優(yōu)化,通過緩沖區(qū)緩存寫命令,可實(shí)現(xiàn)高效斷連恢復(fù)。
持久化機(jī)制
Redis 持久化機(jī)制指的是將內(nèi)存中的數(shù)據(jù)保存到磁盤中,以便在其重啟或故障時保留數(shù)據(jù),防止數(shù)據(jù)丟失。它提供了兩種主要的持久化機(jī)制:
- RDB(Redis DataBase):快照
- AOF(Append Only File):日志追加
此外,還有兩者結(jié)合的 混合持久化(Redis 4.0+)
知行有話
本期的分享到此結(jié)束啦!如果大家認(rèn)為 Redis 中還有哪些比較熱點(diǎn)的知識點(diǎn)沒有提及到,歡迎在評論區(qū)留言哦~