Navicat Blog

Redis 的過期鍵 2023 年 10 月 6 日,由 Robert Gravelle 撰寫

Redis 是一種高效能的記憶體資料庫,以其速度和多功能性而聞名。其實用功能之一是能夠為鍵設定到期時間。在 Redis 中,設定過期鍵對於管理資料以及確保從資料庫中自動移除已到期或暫存的資料至關重要。在本文中,我們將探討如何使用 redis-cli 和 Navicat for Redis 來設定 Redis 中的過期鍵,以及這個功能如何應用於各種場景中。

設定鍵的到期時間

若要在 Redis 中為鍵設定到期時間,可以使用 EXPIRESETEX 命令。EXPIRE 命令讓你以秒為單位設定到期時間,而 SETEX 命令則可以在單一命令中同時設定鍵的值和到期時間。以下是使用這兩個命令的方法:

使用 EXPIRE 命令:

127.0.0.1:6379> SET mykey "Hello, Redis"
OK
127.0.0.1:6379> EXPIRE mykey 60
(integer) 1

在這個例子中,我們首先使用 SET 命令將 mykey 的值設定為「Hello, Redis」。然後,我們使用 EXPIRE 命令將 mykey 的到期時間設定為 60 秒。在 60 秒後,該鍵將自動從資料庫中移除。

使用 SETEX 命令:

127.0.0.1:6379> SETEX mykey 60 "Hello, Redis"
OK

透過使用單一個 SETEX 命令,我們就可以指定鍵、到期時間(在本例中為 60 秒)和值,並且達到相同的結果。

查看存活時間(TTL)

如果想查看鍵到期前剩餘的時間,可以使用 TTL 命令。該命令會傳回剩餘的時間(以秒為單位)。如果鍵不存在則會傳回 -2。如果鍵存在但沒有相關的到期時間則傳回 -1(表示鍵永不過期)。以下是使用方法:

127.0.0.1:6379> TTL mykey
(integer) 30

在這個例子中,我們查看了 mykey 剩餘的時間,它被設定為在 60 秒後過期。而該命令傳回 30,表示還有 30 秒鍵才會過期。

移除已過期的鍵

當到了鍵的到期時間時,Redis 會自動移除該鍵。當然,你也可以使用 DEL 命令手動刪除鍵。如果你想在鍵到期之前刪除它,這非常有用。以下是使用 DEL 命令的方法:

127.0.0.1:6379> DEL mykey
(integer) 1

在這個例子中,我們使用 DEL 命令手動移除了 mykey 。執行此命令後,該鍵將不再存在於資料庫中。

在 Navicat 中設定鍵的到期時間

在 Navicat 中,資料編輯器有一個 TTL 下拉式清單,用於設定鍵的到期時間:

TTL_dropdown (74K)

清單選項包括「無 TTL」、「到期時間 (秒)」和「到期時間 (本地時間)」。以下是如何設定鍵在 60 秒後過期:

expire_in_60_seconds (21K)

當按下「套用」按鈕後,鍵的到期資訊設定就完成了。

過期鍵的常見使用案例

Redis 的過期鍵可以在多種場景中使用,以有效地管理資料:

1. 快取

Redis 經常用作快取層。透過為快取鍵設定較短的到期時間,可以確保快取中的資料保持最新和相關的,防止存儲過時的資料。

2. 階段作業管理

使用 Redis 可以更更輕鬆簡單地管理 Web 應用程式中的使用者階段作業。將階段作業資料設定為在一段時間無活動後過期,可以幫助釋放資源並增強安全性。

3. 速率限制

速率限制是 API 限流的一個常見案例。Redis 可以用於在預定時間過後使速率限制鍵過期來計算和限制用戶端在特定時間範圍內的要求數量。

4. 暫存資料儲存體

Redis 可以用作背景工作或暫存資料處理的暫存資料儲存體。過期鍵可以自動清理不再需要的資料,減少手動干預。

總結

在本文中,我們學習了如何使用 redis-cli 和 Navicat for Redis 來設定 Redis 中的過期鍵,以及如何在各種場景中使用這個功能。Redis 中的過期鍵是一個強大的功能,有助於高效地管理資料,確保從資料庫中自動移除已到期或暫存資料。無論你是在使用 Redis 進行快取、階段作業管理、速率限制還是暫存資料儲存體,設定鍵的到期時間都可以顯著提高應用程式的效能和可靠性。

Navicat Blogs
Feed Entries
Blog Archives
Share