2016-08-19 2 views
0

Предполагая, что пользователь может иметь несколько сеансов (токены JWT). Было бы лучше хранить hashet из токенов, где ключ является userId?Как сохранить несколько сеансов для пользователя с помощью Redis?

key: 1 -> hashet: "token1", "token2", "token3", "token4", "moretokens..." например

Чтобы затем проверить, если маркер действителен я получаю HashSet, цикл через него и попытаться сопоставить маркер?

Использование hashet означает, что я смогу показать пользователю текущие сеансы.

ответ

0

Вы можете использовать SET для хранения токенов: взять идентификатор пользователя в качестве ключа и сохранить список токенов в 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

Хэш будут наиболее эффективным способом хранения значения, как вы можете хранить все из лексем пользователей под идентификатором пользователя, и проверьте их непосредственно с помощью HGET, без необходимости извлекать их и петли через их.