I'm new to Redis, and this is how I see it:
It seems to me that watch/multi/exec is a rather awkward way of implementing optimistic transaction. The duration between watch and exec can be quite long and would typically last several roundtrips to complete (the client would need to send multiple commands to Redis server).
Lua script, on the other hand, enables much more powerful transactions (rollback, complex condition checking...) and doesn't require multiple roundtrips to complete (all in one command). Also it's much more straight-forward.
I understand that Lua script is relatively new compared with watch/multi/exec. So is there any reason to use watch/multi/exec now?