Подходящий тип данных

#data-structures #types #redis

#структуры данных #типы #redis

Вопрос:

я получил список имени пользователя и идентификатора пользователя. я хочу сгруппировать имя пользователя по инициалу. ключом будет имя пользователя, поэтому я могу получить идентификатор пользователя из имени пользователя и проверить, существует пользователь или нет.

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

Спасибо!

Ответ №1:

Я просто играл с этим. Итак, вот что я получил:

 > set alias:tamer 1000
"OK"
> set alias:tansel 1001
"OK"
> hmset uid:1000 alias tamer age 45
"OK"
> hmset uid:1001 alias tansel age 39
"OK"

> hset uid:1000 pass x1x2x3
true

============================
> get alias:tamer
"1000"

> hget uid:1000 alias
"tamer"

hgetall uid:1000
{"alias":"tamer","age":"45","pass":"x1x2x3"}

> hgetall uid:1001
{"alias":"tansel","age":"39"}

> hvals uid:1000
["tamer","45","x1x2x3"]

> hkeys uid:1000
["alias","age","pass"]
  

Поэтому, если кто-то пытается войти в систему, он предоставит вам псевдоним и передаст

Затем вы должны проверить, существует ли псевдоним, например:

 > get alias:tamer
"1000"
  

Мы проверяем, есть ли uid: tamer в базе данных. Ответ положительный, а uid # равен 1000

Давайте получим остальную информацию об uid:

 > hgetall uid:1000
{"alias":"tamer","age":"45","pass":"x1x2x3"}
  

Или просто пароль:

 > hget uid:1000 pass
"x1x2x3"
  

Отвечает ли это на ваш вопрос?

Комментарии:

1. так вы тоже предпочитаете хэш? почему я должен выбрать хэш вместо другого типа данных? и каков наилучший способ, если я хочу сгруппировать имя пользователя по их инициалу?

2. Я не смог бы ответить на этот вопрос лучше, чем сам автор: ссылка