2016-08-19 2 views
0

사용자가 여러 세션 (JWT 토큰)을 가질 수 있다고 가정합니다. 토큰 중 hashet 키가 userId 인 곳을 저장하는 것이 가장 좋을까요?Redis를 사용하는 사용자에게 여러 세션을 어떻게 저장해야합니까?

예컨대 key: 1 -> hashet: "token1", "token2", "token3", "token4", "moretokens..."

토큰 내가 그것을 통해 HashSet의 루프를 얻고 토큰을 일치하려고 할 것 유효한 경우

다음 확인하려면?

해트트를 사용하면 사용자에게 현재 세션을 보여줄 수 있음을 의미합니다.

답변

0

SET을 사용하여 토큰을 저장할 수 있습니다. 사용자 ID를 키로 사용하고 토큰 목록을 고유 한 요소가 포함 된 SET (값)으로 저장할 수 있습니다. 당신을 통해 모든 루프를 검색 할 필요없이 사용자 ID 아래에 사용자 토큰을 모두 저장하고 직접 HGET를 사용하여 확인할 수 있습니다로

// 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

해시는 값을 저장하는 가장 효율적인 방법이 될 것입니다 그들.

관련 문제