Redis 資料庫組織(必需)。

Mondo 科技 更新 2024-01-31

什麼是 Redis?

Redis是基於C語言開發的開源資料庫,與傳統資料庫不同,Redis資料儲存在記憶體(in-memory database)中,讀寫速度非常快,在快取方向上應用廣泛。 此外,Redis 還儲存 KV 鍵值對資料。 為了滿足不同業務領域的需求,Redis內建了資料型別實現。 此外,Redis 還支援各種開箱即用的集群解決方案的事務和持久化。

為什麼要使用 redis?

1.效能。

如果使用者是第一次訪問資料庫中的某些資料,則該過程會較慢,畢竟是從硬碟中讀取的。 但是如果。

如果使用者訪問的資料是高頻資料,並且不經常變化,那麼我們可以安全地儲存使用者訪問的資料。

在快取中。 也就是說,為了確保使用者下次訪問資料時,他們可以直接從快取中獲取資料。 操作快取。

這是對記憶體的直接操作,所以它非常快。

2.高併發。

像MySQL這樣的資料庫,QPS在1W左右(4核8G),但通過Redis快取很容易實現。

10W+,甚至高達30W+(在單機Redis的情況下,在Redis集群中會更高)。

qps(每秒查詢):伺服器每秒可以執行的查詢數

可以看出,直接操作快取可以維持的資料庫請求數遠大於直接訪問資料庫的數目,因此我們可以考慮這個數字。

資料庫中的某些資料被傳輸到快取中,因此使用者的某些請求直接進入快取,而無需經過資料庫。 然後,我。

這也提高了整個系統的併發性。

除了快取之外,Redis 還能做什麼?

分布式鎖:分布式鎖是使用 Redis 製作分布式鎖的常用方式。

速率限制:一般情況下,您可以使用 Redis + Lua 指令碼來限制速率。

訊息佇列:Redis 內建的列表資料結構可以作為簡單的佇列使用。 redis 5.新增為 0 的流型別更適合訊息佇列。 它類似於 Kafka,具有主題和消費者組的概念,支援訊息持久化和 ACK 機制。

複雜的業務場景:通過Redis和Redis擴充套件(如Redisson)提供的資料結構,我們可以輕鬆完成許多複雜的業務領域,例如通過Bitmap統計活躍使用者,通過排序集維護排行榜。

Redis 常用的資料結構有哪些?

5 種基本資料結構:字串、列表、集合hash (雜湊), zset (有序集.

有 3 種特殊資料結構:hyperloglogs、bitmaps 和 geospatial。

redis為快取資料設定過期時間有什麼用?

通常,我們在設定儲存的快取資料時會設定過期時間。 為什麼?

由於記憶體有限,如果快取中的所有資料都一直保留,則幾分鐘後就會耗盡記憶體。

過期時間除了有助於緩解記憶體消耗之外,是否有其他用處?

在很多情況下,我們的業務需要一定的資料只存在於一定的時間段內,例如,我們的簡訊驗證碼可能只有1分。

使用者登入的令牌可能僅在 1 天內有效。

如果使用傳統資料庫來處理,一般會自己判斷過期時間,比較繁瑣,效能也低很多。

您知道過期資料的刪除策略嗎?

如果設定了一批金鑰僅存活 1 分鐘,那麼 Redis 如何在 1 分鐘後刪除金鑰?

對於過期資料,有兩種常用的刪除策略。

1.延遲刪除:僅在檢索金鑰時檢查資料是否過期。 這是對 CPU 最友好的,但可能會導致太多。

期間鍵尚未刪除。

2.定期刪除:定時提取一批金鑰,刪除過期金鑰。 此外,底層 Redis 將通過限制刪除操作來強制執行刪除操作。

行的長度和頻率,以減少刪除操作對 CPU 時間的影響。

常規刪除對記憶體更友好,延遲刪除對 CPU 更友好。 兩者都各有千秋,所以Redis使用常規刪除+懶惰。

性懶惰風格去除。

但是,僅通過設定金鑰的到期時間,仍然存在問題。 因為可能仍然有定期刪除和延遲刪除,錯過了很多過期時間。

鑰匙。 這會導致大量過期的金鑰在記憶體中累積,然後它們就耗盡了記憶體。

你了解Redis記憶體消除機制嗎?

相關問題:MySQL中有2000W的資料,Redis只有20W的資料,如何保證Redis中的資料是熱資料?

Redis 提供了六種資料消除策略:

1.volatile-lru:從已設定過期時間的資料集中選取最新的資料集。

刪除使用最少的資料。

2.volatile-ttl:從資料集設定的過期時間中選擇要過期的資料。

3.volatile-random:從資料集中選擇已設定過期時間的任何資料。

4.alkeys-r:當沒有足夠的記憶體來容納新寫入的資料時,從金鑰空間中刪除最近使用最少的金鑰(這是最常用的金鑰)。

5.allkeys-random:從資料集中選擇要刪除的任何資料。

快取穿透和快取擊穿有什麼區別?

在快取滲透中,請求的金鑰既不存在於快取中,也不存在於資料庫中。

在快取細分中,請求的金鑰對應於熱資料,該資料存在於資料庫中,但不存在於快取中(通常是因為快取中的資料已過期)。

解決方案是什麼?對於Redis服務不可用的情況:

1.使用Redis集群是為了避免單機出現問題,不能使用整個快取服務。

2.限制以避免同時處理大量請求。

對於熱點快取失效:

1.設定不同的過期時間,例如隨機設定快取的過期時間。

2.快取永不過期(不推薦,使用太差)。

3.設定二級快取。

相關問題答案

    螞蟻資料庫是國產資料庫發展的資訊創新政策支撐

    由於中國在資訊科技領域起步較晚,國內大量市場份額被國際IT巨頭佔據,甚至長期處於壟斷地位,這也給了一些國家試圖通過挑起科技和摩擦來平衡中國發展的機會。為了解決可能存在的安全風險,重要資訊系統和關鍵基礎設施使用的核心資訊科技產品和關鍵服務必須是可控的 可研究的 可開發的 可生產的。資料庫作為資訊科技發...

    資料安全知識:資料庫簡史

    第乙個自動化資料庫與赫爾曼 霍勒里斯 Herman Hollerith 相連,他於年為自動資料處理系統申請了專利。 年美國人口普查使用了打孔卡計數器系統,卡片收集代表了第乙個自動資料庫系統。每張卡片有 列,其中包含有關人員特徵的資訊。通常,人口普查資訊需要兩年時間來處理。然而,打孔卡系統和自動讀卡機...

    國產分布式資料庫AntDB資料庫發展趨勢及難點

    介紹 近日,為更好地滿足亞信科技客戶對資料管理的需求,提公升通用資料庫的產品服務能力和業務拓展能力,亞信科技分布式資料庫antdb發布了V版本幫助運營商核心系統實現業務系統的全方位自主可控和平滑上線。面向未來,國產資料庫的發展還有很長的路要走,分布式資料庫也將在這一過程中發揮重要作用。資訊創新產業,...

    資料安全知識 資料庫安全威脅

    以下是建立資料庫安全策略時必須考慮的最常見和最危險的威脅型別。SQL 注入是一種網路攻擊,攻擊者通過輸入欄位將惡意 插入結構化查詢語言 SQL 語句中。如果資料庫中存在漏洞,黑客可以繞過身份驗證並獲得向資料庫發出命令的能力。SQL 注入使入侵者能夠執行以下一項 或多項 活動 修改 竊取或刪除資料。建...

    向量資料庫,展望AGI時代

    在通向通用人工智慧 AGI 時代的道路上,向量資料庫和大型模型現在是技術領域的明星。然而,與任何新興技術一樣,它們的關注似乎更多地來自焦慮,而不是對真正需求的追求。本文探討了AGI時代對向量資料庫的熱潮及其前景,以及公眾對這一技術浪潮的心態。隨著科學技術的飛速發展,人們對AGI時代的到來充滿期待,但...