Как я могу читать из Redis внутри блока MULTI в Ruby?

Я инкапсулирую сложный набор команд Redis в MULTI-транзакцию, но логика в транзакции зависит от значений, уже имеющихся в Redis. Но все операции чтения внутри транзакции, похоже, возвращаютсяnil

Вот пример, который демонстрирует проблему:

[Dev]> $redis.set("foo", "bar")
=> "OK"
[Dev]> $redis.multi{ $redis.set("foo", "baz") if $redis.get("foo") == "bar" }
=> ["bar"]
[Dev]> $redis.get("foo")
=> "bar"

Очевидно, я хочу, чтобы последнее возвращаемое значение было'baz' & # X2013; как я могу этого достичь?

Ответы на вопрос(2)

Ваш ответ на вопрос