Redis сравнивает и устанавливает атомарные

Я хочу сохранить в Redis некоторый int, который покажет текущую загрузку (количество ожидающих запросов).

Мне нужен этот счетчик в Redis, чтобы проверить, должно ли приложение отправлять запрос на подчеркивание службы или нет.

Например, у меня порог 50 ожидающих запросов. И если приложение уже отправило 50 запросов, я должен ограничить свой запрос. Что-то похожее на распределенный семафор.

Я вижу, что у Redis есть транзакция. Но он не может вернуть значение.

Может ли Redis помочь мне в таком случае?


person Aleksandr Filichkin    schedule 15.11.2018    source источник
comment
Вы имеете в виду, что хотели бы атомарно сравнить значение и увеличить его на 1 или сравнить значение и установить новое значение?   -  person Kishore Bandi    schedule 15.11.2018
comment
Да. Сравните и установите.   -  person Aleksandr Filichkin    schedule 15.11.2018


Ответы (1)


У нас было аналогичное требование, когда мы должны были «сравнить значение и увеличить его на 1» атомарно. В итоге мы использовали сценарий LUA.

Это может быть похоже на то, что вы ищете.

person Kishore Bandi    schedule 15.11.2018
comment
Спасибо, попробуем! - person Aleksandr Filichkin; 15.11.2018