Хэши Redis — это тип записи, хранящейся в базе данных Redis. Они немного похожи на объекты JSON и хранят данные в виде пар ключ-значение. Они есть изменчивый, поэтому его можно легко изменить и обновить в зависимости от ваших потребностей. Как таковые, они являются отличным способом хранения определенных типов данных в Redis. Если вы новичок в Redis, убедитесь, что вы сначала установили его. перед тем, как попробовать это руководство.

Хэши Redis имеют плоскую структуру, поэтому у нас не может быть нескольких уровней, как в JSON. Если мы хотим добавить новый хэш, мы используем команду терминала HSET. Запустите Redis, запустив redis-cli в терминале, а затем попробуйте запустить следующее, чтобы установить новый ключ:

HSET user:1 keyOne valueOne keyTwo valueTwo
Войти в полноэкранный режим

Выйти из полноэкранного режима

Соглашение об именовании хэша redis имеет следующий вид: hash:keyтак что здесь мы имеем user:1для представления пользователя номер 1. Приведенный выше синтаксис может показаться запутанным, но он соответствует следующему соглашению:

HSET hash:key key value key value key value .... 
Войти в полноэкранный режим

Выйти из полноэкранного режима

Итак, когда мы написали HSET user:1 keyOne valueOne keyTwo valueTwoмы создал новый хеш с именем user:1а затем мы создали ключ с именем keyOne со значением valueOneи ключ называется keyTwo со значением valueTwo. Вы можете продолжать использовать этот шаблон вечно, то есть ваш хэш может иметь столько пар ключ-значение, сколько вам нужно.


Обновление и добавление новых ключей в хэши Redis

Мы можем использовать HSET команда для создания хэша, а также обновления или добавления к нему. Например, чтобы добавить новый ключ и значение в user:1мы просто запускаем HSET снова с новым ключом и значением:

HSET user:1 keyThree valueThree
Войти в полноэкранный режим

Выйти из полноэкранного режима

Если мы позже захотим обновить keyThree иметь значение valueFourмы бы побежали HSET снова, чтобы перезаписать значение keyThree:

HSET user:1 keyThree valueFour
Войти в полноэкранный режим

Выйти из полноэкранного режима


Получение значений хеш-ключа и хэшей в Redis

Если вы хотите получить все ключи и значения в определенном хеше, вы используете HGETALL. Это вернет все ключи и значения в указанном хеше. Например:

HGETALL user:1
Войти в полноэкранный режим

Выйти из полноэкранного режима

Вернется:

1) "keyOne"
2) "valueOne"
3) "keyTwo"
4) "valueTwo"
Войти в полноэкранный режим

Выйти из полноэкранного режима

Между тем, если вы хотите получить значение одного конкретного ключа в хеше, мы используем HGET. Например, чтобы получить значение keyOneмы бежим:

HGET user:1 keyOne
Войти в полноэкранный режим

Выйти из полноэкранного режима

Что вернет:

"valueOne"
Войти в полноэкранный режим

Выйти из полноэкранного режима


Увеличение значений ключа хэша на сумму

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

HSET scoreboard:1 userNameOne 200
Войти в полноэкранный режим

Выйти из полноэкранного режима

Если нам нужно обновить оценку пользователя, мы можем легко увеличить оценку пользователя на определенную сумму, используя HINCRBY. Допустим, мы хотим увеличить оценку пользователя на 200. Вместо использования HSETмы могли бы сделать это:

HINCRBY scoreboard:1 userNameOne 200
Войти в полноэкранный режим

Выйти из полноэкранного режима


Удаление хэш-ключей и значений в Redis

Наконец, если вы хотите удалить хеш-ключи для определенного хеша, мы используем HDEL. Возьмем наш первый пример user:1если мы хотим удалить keyOneмы могли бы сделать это, выполнив следующую команду:

HDEL user:1 keyOne
Войти в полноэкранный режим

Выйти из полноэкранного режима

Если вы вообще не хотели иметь хеш и хотели удалить user:1 полностью, то вы можете просто использовать del вместо:

del user:1
Войти в полноэкранный режим

Выйти из полноэкранного режима