2016-08-19 89 views
0

假設用戶可以有多個會話(JWT令牌)。最好是存儲一個hashet的關鍵是userId的標記?如何使用Redis將多個會話存儲到用戶?

E.g key: 1 -> hashet: "token1", "token2", "token3", "token4", "moretokens..."

爲了再檢查,如果令牌是有效的我能得到的HashSet,環通,並嘗試匹配令牌?

使用hashet意味着我能夠向用戶顯示當前會話。

回答

0

您可以使用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 
+0

此解決方案不考慮會話生存期。如何處理redis集中的多會話生命週期? – Joshua

0

哈希值將存儲值的最有效的方式,你可以全部用戶令牌的存儲下用戶ID,並檢查他們直接使用HGET,而不需要通過檢索所有這些,環他們。

相關問題