Como posso ler a partir do Redis dentro de um bloco MULTI em Ruby?

Estou encapsulando um conjunto complicado de comandos do Redis em uma transação MULTI, mas a lógica na transação depende dos valores já no Redis. Mas todas as leituras dentro de uma transação parecem retornarnil

Aqui está um exemplo que demonstra o problema:

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

Obviamente, eu quero que o último valor de retorno seja'baz' - como posso conseguir isso?

questionAnswers(2)

yourAnswerToTheQuestion