Dado que está haciendo un '...', es difícil decirlo con certeza, pero diría que está configurando mykey durante esa parte, lo que eliminará efectivamente la caducidad.
Del manual EXPIRE
El tiempo de espera se elimina solo cuando la clave se elimina con el comando DEL o se sobrescribe con los comandos SET o GETSET
Además, con respecto a la respuesta -1 de TTL
Valor devuelto
Respuesta entera:TTL en segundos o -1 cuando la clave no existe o no tiene tiempo de espera.
EDITAR:tenga en cuenta que este comportamiento cambió en Redis 2.8
A partir de Redis 2.8, el valor devuelto en caso de error cambió:
El comando devuelve -2 si la clave no existe.
El comando devuelve -1 si la clave existe pero no tiene caducidad asociada.
En otras palabras, si su clave existe, parecería ser persistente, es decir, no tener ningún vencimiento establecido.
EDITAR:Parece que puedo reproducir esto si creo la clave en un servidor esclavo de REDIS, el esclavo no eliminará la clave sin la entrada del maestro, ya que normalmente no crearía claves localmente en un esclavo. ¿Es este el caso aquí?
Sin embargo, aunque los esclavos conectados a un maestro no expirarán las claves de forma independiente (sino que esperarán a que el DEL provenga del maestro), seguirán tomando el estado completo de las expiraciones existentes en el conjunto de datos, por lo que cuando se elige un esclavo como maestro, podrá caducar las claves de forma independiente, actuando completamente como un maestro.