Использование хэшей Redis для состояния сеанса очень распространено.Стандартный подход заключается в использовании идентификатора сеанса в качестве ключа и использовании полей хеша для оставшейся части состояния сеанса.Этот дизайн имеет следующие желательные характеристики:
- Вы можете получить состояние сеанса за время O (1).
- Вы можете установить время истечения сеанса.
- Вы можете хранить произвольное количество информации в сеансе.
Я считаю, что это соответствует вашим требованиям.
Вы используете фразы "У хэша Redis есть ключ" и "введите хэш "заставьте меня думать, что вы неправильно понимаете, как работают хэши.Ключ - это имя хеша, если хотите, а не его член.Подпись HSET
указывает, какой хеш вы хотите изменить (ключ), и какое поле и значение в нем установить.
Вот пример (с использованием команд Redis) того, как может выглядеть создание сеанса:
HMSET session:123 userId 5 last_login 2019-02-13 ...
EXPIRE session:123 2592000
Затем вы можете получить данные сеанса с помощью:
HGET session:123 last_login
или установить их с помощью:
HSET session:123 last_login 2019-02-18