title: Redis Lua script redis.call('get', 'nonexisting') return value
body: <p>It seems the following Redis Lua script returns <code>false</code> rather than <code>nil</code>, which is contradicting to what the document says:</p>
  
  <pre><code>&gt; eval "local r = redis.call('get', 'none'); if r==nil then return 42 end" 0
  (nil)
  &gt; eval "local r = redis.call('get', 'none'); if r==false then return 42 end" 0
  (integer) 42
  &gt; eval "local r = redis.call('get', 'none'); if not r then return 42 end" 0
  (integer) 42
  </code></pre>
  
  <p>the first <code>eval</code> failed at the condition <code>r==nil</code>, the second <code>eval</code> seems to prove that the return value is <code>false</code></p>
  
  <p>It seems using <code>not r</code> is the safest option I have at hand, but the documentation <a href="https://redis.io/commands/get" rel="nofollow noreferrer">here</a> says that the <code>GET</code> command would return <code>nil</code></p>
  
  <p>Is this something everyone else has observed and relying upon as a fact that the safest Redis Lua script checking for commands returning <code>nil</code> is to use <code>not r</code>?</p>