public function run(string $command, array $args)
    {
        if (empty($this->sha)) {
            $this->reload();
        }

        $arguments = $this->normalizeCommandArgs($command, $args);

        try {
            return call_user_func_array([$this->redis, 'evalsha'], $arguments);

        } catch (\Exception $exception) {
            throw ExceptionFactory::fromErrorMessage($exception->getMessage());
        }
    }