title: Error in Redis Lua script after successful write command
body: <p>According to Redis documentation, lua scripts execute atomically. I assumed that this also means that scipts run as transactions, that is, all write commands in a script either succeed or fail. 
  However I noticed, that write command changes do persist, even if script later returned an error.</p>
  
  <p>For example, after running the following from redis cli, the key "k" has value "1", even though the script itself returns an error about access to global variable:</p>
  
  <pre><code>eval "redis.call(\"set\",KEYS[1],1) return x&gt;1" 1 "k"
  </code></pre>
  
  <p>Is this expected? I'm I missing something? I'm running version 2.8.12 on Windows.</p>