2016-08-19 90 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,而不需要通过检索所有这些,环他们。

相关问题