вернуть ОВЦС

Vernut Ovcs



Целочисленные манипуляции Redis

Строковый тип является наиболее фундаментальным типом данных, который предлагает Redis. Строки Redis могут хранить тексты, сериализованные объекты JSON, изображения, аудио и даже числовые значения. В этом руководстве мы сосредоточимся на числовых значениях и работе с целыми числами. Redis не поддерживает отдельные целочисленные типы данных для хранения числовых данных. Если ключ Redis содержит строку, которая может быть представлена ​​как целое число, Redis может интерпретировать числовые значения как 64-разрядные целые числа со знаком по основанию 10.


Манипуляции с числами — чрезвычайно полезная функция для любой базы данных. Redis предлагает несколько полезных операций для работы с целочисленными типами, такими как INCR, DECR, INCRBY и т. д. В этом руководстве подробно объясняется команда DECR, которая работает с целочисленными типами.







Командование ОВЦС

Команда DECR введена для уменьшения числового значения, хранящегося в данном ключе, на единицу. Это работает только со строковыми значениями, которые могут быть представлены в виде 64-битного целого числа с основанием 10. Команда DECR выдает ошибку для нестроковых значений или строковых значений, которые не могут быть представлены как целые числа.



Ниже приведен синтаксис команды DECR:



ключ ОВЦС


Ключ: Ключ, который содержит строковое значение.





Команда DECR возвращает результирующее целое число со знаком после операции уменьшения. Если указанный ключ не существует, команда устанавливает значение равным 0, а затем уменьшает его на единицу. Кроме того, ошибка возникает, когда значение не является строкой или не может быть представлено как 64-разрядное целое число со знаком. Эта команда работает с постоянной временной сложностью (O(1)), что очень быстро.

Пример использования — уменьшение здоровья игрока в онлайн-игре

Предположим, есть онлайн-игра, в которой здоровье каждого игрока увеличивается на единицу при раскрытии аптечки. Точно так же здоровье уменьшается на единицу, если игрок падает или его ударяет другой игрок.



Идеальным кандидатом для хранения здоровья игрока является строковый тип Redis, где мы можем хранить здоровье как целое число. Давайте создадим ключ здоровье: playerID: 1 и установите его значение равным 10. Мы можем использовать команду SET следующим образом:

установлен здоровье: идентификатор игрока: 1 10



Мы можем использовать команду GET для проверки значения, хранящегося в здоровье:ID игрока:1.

получить здоровье:playerID: 1



Допустим, игрок с ID 1 получает удар, и его здоровье должно уменьшиться на единицу. Команду DECR можно использовать следующим образом:

декр здоровье:идентификатор игрока: 1


Как и ожидалось, команда DECR выводит обновленное значение после операции уменьшения, как показано на следующем рисунке:


Кроме того, мы можем проверить значение, хранящееся в ключе здоровье: playerID: 1 с помощью команды ПОЛУЧИТЬ.

получить здоровье:playerID: 1



Как и ожидалось, значение уменьшилось на единицу.

Оператор DECR действителен и с отрицательными числами. Сохраним новое отрицательное числовое значение в ключе отрицательный:значение1 .

установлен отрицательный:значение1 -3


Мы можем проверить значение с помощью команды GET следующим образом:

получить отрицательное: значение1



Следующая команда показывает, как команда DECR используется для ключа отрицательный:значение1:

декр отрицательный:значение1


Команда DECR для нецелочисленных значений

Есть некоторые крайние случаи, когда мы пытаемся использовать команду DECR для ключа Redis, который содержит нестроковый тип данных или строку, которая не может быть представлена ​​как целое число. Команда DECR выдает ошибку в таких случаях, как показано в следующем примере:

установлен notAnIntergerVal Привет


«Привет» — это текст, который нельзя преобразовать в целое число со знаком. Таким образом, команда DECR вызывает ошибку, если мы вызываем ее для этого ключа.

decr notAnIntergerVal


Команда DECR для несуществующих ключей

В некоторых случаях вы можете вызвать команду DECR для ключа, которого нет в хранилище данных Redis. Итак, команда создает указанный ключ и устанавливает его значение в целое число 0. При этом значение уменьшается на единицу.

decr несуществующий ключ


Как и ожидалось, результат равен -1.


В целом, команда DECR очень полезна для реализации счетчиков в приложениях с малой задержкой.

Вывод

Таким образом, DECR — это одна из команд, которые работают с числовыми значениями, хранящимися в данном ключе Redis. Redis не поддерживает отдельный целочисленный тип данных. Таким образом, строковый тип также используется для хранения числовых значений. Как было показано, если строковое значение может быть представлено как 64-битное целое число со знаком, команда DECR может использоваться для уменьшения его значения. Самое главное, он работает с постоянной временной сложностью. Также для реализации счетчиков широко используется команда DECR.