Da du laver et '...' er det svært at sige med sikkerhed, men jeg vil sige, at du indstiller mykey under den del, hvilket effektivt fjerner udløbet.
Fra EXPIRE-manualen
Timeoutet ryddes kun, når nøglen fjernes ved hjælp af DEL-kommandoen eller overskrives ved hjælp af SET- eller GETSET-kommandoerne
Også vedrørende -1-svaret fra TTL
Returværdi
Heltalssvar:TTL i sekunder eller -1, når nøglen ikke findes eller ikke har en timeout.
EDIT:Bemærk, at denne adfærd ændrede sig i Redis 2.8
Startende med Redis 2.8 returnerer værdien i tilfælde af fejl ændret:
Kommandoen returnerer -2, hvis nøglen ikke eksisterer.
Kommandoen returnerer -1, hvis nøglen eksisterer, men ikke har nogen tilknyttet udløb.
Med andre ord, hvis din nøgle eksisterer, ser den ud til at være vedvarende, dvs. ikke have nogen udløbsdato.
EDIT:Det ser ud til, at jeg kan genskabe dette, hvis jeg opretter nøglen på en REDIS-slaveserver, slaven vil ikke slette nøglen uden master-input, da man normalt ikke ville oprette nøgler lokalt på en slave. Er dette tilfældet her?
Selvom slaverne, der er forbundet til en master, ikke udløber uafhængigt af nøgler (men vil vente på, at DEL'en kommer fra masteren), vil de stadig tage den fulde tilstand af udløbene, der findes i datasættet, så når en slave vælges til en master vil være i stand til at udløbe nøglerne uafhængigt og fuldt ud fungere som en mester.