If an EVAL is performed against a Redis instance all the subsequent EVALSHA calls will succeed. So the best practice of EVALSHA command of Redis is:

  1. Try EVALSHA
  2. If EVALSHA failed, do EVAL