twitter/twemproxy — pull request #60 by ferenyx (2013-01-25 13:15:16+00:00)
Title: EVAL/EVALSHA support

There are a few caveats with this patch set:

1) If you provide a script with 0 keys, the proxy will ignore you (e.g. if you run redis-cli and issue the command 'EVAL "return 0" 0', redis-cli will hang. I think the correct thing to do here is to either accept the command and run it on a random server, or reject the command if there are 0 keys specified.
2) If you provide a script with more than 1 key, the proxy does NO checking to verify that all your keys reside on the same shard, and the proxy also doesn't care whether you use hash tags. The entire EVAL command will be run on the shard that the first key hashes to, and may or may not do the right thing depending on whether the other keys exist on that server. It'd probably be nice if the proxy did some checking and rejected your script if the keys specified hash to different servers?

If you provide a script with exactly 1 key, everything should just work.