sql >> Database teknologi >  >> NoSQL >> Redis

mine redis-nøgler udløber ikke

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.




  1. Hvordan får man flere dokumenter ved hjælp af array af MongoDb id?

  2. Mongoid / Mongodb og forespørgsel om indlejrede dokumenter

  3. Opdel streng i en række af understrenge eller tegn i MongoDB

  4. Transparent Database Failover til dine applikationer