Ponieważ robisz „...”, trudno powiedzieć na pewno, ale powiedziałbym, że ustawiasz mój klucz podczas tej części, co skutecznie usunie wygaśnięcie.
Z instrukcji EXPIRE
Limit czasu jest kasowany tylko wtedy, gdy klucz zostanie usunięty za pomocą polecenia DEL lub nadpisany za pomocą poleceń SET lub GETSET
Również w odniesieniu do odpowiedzi -1 z TTL
Wartość zwrotu
Odpowiedź całkowita:TTL w sekundach lub -1, gdy klucz nie istnieje lub nie ma limitu czasu.
EDYTUJ:Zwróć uwagę, że to zachowanie zmieniło się w Redis 2.8
Począwszy od Redis 2.8, wartość zwracana w przypadku błędu uległa zmianie:
Polecenie zwraca -2, jeśli klucz nie istnieje.
Polecenie zwraca -1, jeśli klucz istnieje, ale nie ma skojarzonego z nim wygaśnięcia.
Innymi słowy, jeśli Twój klucz istnieje, wydaje się, że jest trwały, tj. nie ma ustawionego wygaśnięcia.
EDYCJA:Wygląda na to, że mogę to odtworzyć, jeśli stworzę klucz na serwerze podrzędnym REDIS, urządzenie podrzędne nie usunie klucza bez wejścia głównego, ponieważ normalnie nie utworzysz kluczy lokalnie na serwerze podrzędnym. Czy tak jest w tym przypadku?
Jednakże, podczas gdy urządzenia podrzędne podłączone do urządzenia nadrzędnego nie wygasną niezależnie od kluczy (ale będą czekać na DEL przychodzące od urządzenia nadrzędnego), nadal przejmą pełny stan wygaśnięcia istniejącego w zbiorze danych, więc gdy urządzenie podrzędne zostanie wybrane jako nadrzędne, będzie mógł wygasać klucze niezależnie, działając w pełni jako master.