假設用戶可以有多個會話(JWT令牌)。最好是存儲一個hashet的關鍵是userId的標記?如何使用Redis將多個會話存儲到用戶?
E.g key: 1 -> hashet: "token1", "token2", "token3", "token4", "moretokens..."
爲了再檢查,如果令牌是有效的我能得到的HashSet,環通,並嘗試匹配令牌?
使用hashet意味着我能夠向用戶顯示當前會話。
假設用戶可以有多個會話(JWT令牌)。最好是存儲一個hashet的關鍵是userId的標記?如何使用Redis將多個會話存儲到用戶?
E.g key: 1 -> hashet: "token1", "token2", "token3", "token4", "moretokens..."
爲了再檢查,如果令牌是有效的我能得到的HashSet,環通,並嘗試匹配令牌?
使用hashet意味着我能夠向用戶顯示當前會話。
您可以使用SET
來存儲令牌:將用戶ID作爲密鑰,並將令牌列表存儲到包含唯一元素的SET
(作爲值)。
// insert single token
sadd userId token1
// insert multiple tokens
sadd userId token2 token3
// insert an existing token will fail
sadd userId token1
// check if a token is valid
sismember userId token1
// get all tokens of a user
smembers userId
哈希值將存儲值的最有效的方式,你可以全部用戶令牌的存儲下用戶ID,並檢查他們直接使用HGET,而不需要通過檢索所有這些,環他們。
此解決方案不考慮會話生存期。如何處理redis集中的多會話生命週期? – Joshua