Может ли redis передать несколько команд, которые зависят от предыдущих? - PullRequest
7 голосов
/ 08 марта 2012

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

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

Does valueX exist?
If it does insert valueY

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

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

1 Ответ

7 голосов
/ 08 марта 2012

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

...