核心資料網頁與行動

工作階段管理

儲存會自動到期的工作階段,並可依使用者、角色或裝置查找或撤銷,不需要自行建立索引。

次查找,找出使用者的所有工作階段
1
個次要索引
0
到期,標籤一併處理
自動
步驟 1 / 5
在三部裝置上登入

每部裝置都有自己的工作階段,到期時間為 30 分鐘。

範例工作階段playing
# 在三部裝置上登入
hotkv> SET session:9f2c "{\"user\":42}" EX 1800
OK

以真實 HotKV 指令與範例回覆呈現的動畫導覽。點擊任一步驟即可跳到該步驟。 指令與回覆維持英文,與您在 HotKV 中輸入及看到的完全一致。

問題

工作階段小、熱,而且壽命短,很適合放在記憶體內儲存。困難的部分在後頭:當客服需要讓使用者在所有地方登出,或安全團隊需要結束某個角色或某部裝置的所有工作階段時。單純的鍵值儲存只能依 ID 查找工作階段。

HotKV 如何處理

HotKV 把每個工作階段儲存為帶有到期時間的鍵,並讓您以它所屬的使用者、角色或裝置為它加上標籤。標籤是引擎的一部分,並會隨鍵一起消失,因此您只需一次查找,就能列出或撤銷所有相符的工作階段,而不必另外維護一組平行的鍵。

逐步說明

逐個指令看看發生了什麼事

  1. 01

    在三部裝置上登入

    每部裝置都有自己的工作階段,到期時間為 30 分鐘。

    SET session:9f2c "{\"user\":42}" EX 1800
  2. 02

    為每個工作階段加上標籤

    在工作階段建立後,立即附上使用者、角色與裝置。

    TAG.SET session:9f2c user:42 role:admin device:ios
  3. 03

    活躍時保持登入

    每個請求都會更新到期時間,形成滑動逾時。

    EXPIRE session:9f2c 1800
  4. 04

    找出使用者 42 的所有工作階段

    有人回報筆記型電腦遺失。一次查找就能傳回該使用者的所有工作階段。

    TAG.MEMBERS user:42
  5. 05

    在所有地方登出

    刪除傳回的鍵。它們的標籤隨之消失,每部裝置都會登出。

    DEL session:9f2c session:71aa session:0c8e
適用之處

真實世界的情境

銀行與金融科技應用

安全團隊只需一個動作,就能結束遭入侵帳戶的所有工作階段,或使用過時應用程式版本的每部裝置。

SaaS 產品

當管理員的角色被移除時,所有帶有該角色標籤的工作階段會一次被撤銷。

串流服務

從使用者標籤的 TAG.MEMBERS 回覆,統計並限制每個帳戶的同時工作階段數。

內建

您能獲得什麼

自動到期

TTL 一到,工作階段就會自行消失,標籤也隨之清除。

EXEXPIRE

不需索引即可查找

依任一標籤,或同時依多個標籤查找工作階段。

TAG.MEMBERSTAG.INTER

快速檢查標籤

TAG.COUNT 與 TAG.EXISTS 能告訴您一個鍵帶有哪些標籤。

TAG.COUNTTAG.EXISTS

登入尖峰時依然快速

工作階段的讀取與寫入在平行執行緒上執行。

常見問題

如何只讓使用者在單一裝置登出?

對使用者標籤與裝置標籤使用 TAG.INTER,然後刪除它傳回的鍵。

工作階段到期時,它的標籤會怎麼樣?

鍵的標籤會隨鍵消失,到期時也一樣。標籤不屬於快照的一部分,因此如果伺服器從快照重新啟動,請重新套用標籤。

我可以限制每個帳戶的同時工作階段數嗎?

可以。對使用者標籤執行 TAG.MEMBERS 會列出這些工作階段,因此您可以計算數量,並在登入時拒絕或結束最舊的一個。

相關使用情境

在您自己的工作負載上試試看

HotKV 支援 Redis 協定,因此您可以將現有的用戶端指向它,並執行這些相同的指令。