Может ли Redis конвейеризировать несколько команд, которые зависят от предыдущих?

StackOverflow https://stackoverflow.com//questions/9612743

  •  09-12-2019
  •  | 
  •  

Вопрос

Я очень новичок в Redis и все еще играю с ним.Я хочу проверить, имеет ли это отношение к моему проекту, но я не уверен в конкретной команде, которую выполняю.Пользователи SO убедили меня в преимуществах производительности от использования конвейеров и транзакций, поэтому я решил спросить, как это сделать.

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

Does valueX exist?
If it does insert valueY

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

Это возможно?Если это поможет, я использую Java, но еще не определился, какую клиентскую библиотеку (jedis или jredis, все еще тестирую).На самом деле я даже не полностью остановился на Redis, но очень склоняюсь к нему (кажется, это хорошо для того, что я делаю с точки зрения скорости), поэтому любые предложения приемлемы.

Это было полезно?

Решение

Нет, в данный момент сделать это невозможно.То, что вам нужно, — это функция, отсутствующая на данный момент, но она будет доступна в версии Redis 2.6.Это называется LUA-скриптингом.Вы можете выполнять команды сервера, которые зависят от предыдущих команд, все в одном, без необходимости получать их на клиенте.Более подробную информацию см. здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top