sql >> Databasteknik >  >> NoSQL >> Redis

mina redis-nycklar upphör inte att gälla

Eftersom du gör ett "..." är det svårt att säga säkert, men jag skulle säga att du ställer in mykey under den delen, vilket effektivt tar bort utgången.

Från EXPIRE-manualen

Timeout rensas endast när nyckeln tas bort med DEL-kommandot eller skrivs över med SET- eller GETSET-kommandona

Även angående -1-svaret från TTL

Returvärde

Heltalssvar:TTL i sekunder eller -1 när nyckel inte finns eller inte har en timeout.

EDIT:Observera att detta beteende ändrades i Redis 2.8

Från och med Redis 2.8 ändras returvärdet vid fel:
Kommandot returnerar -2 om nyckeln inte finns.
Kommandot returnerar -1 om nyckeln finns men inte har någon associerad utgång.

Med andra ord, om din nyckel finns verkar den vara beständig, dvs inte ha någon utgångsdatum inställd.

EDIT:Det verkar som om jag kan återskapa detta om jag skapar nyckeln på en REDIS slavserver, slaven kommer inte att radera nyckeln utan masteringång, eftersom du normalt inte skulle skapa nycklar lokalt på en slav. Är det så här?

Men även om slavarna som är anslutna till en master inte kommer att förfalla nycklar oberoende av varandra (men kommer att vänta på att DEL kommer från mastern), kommer de fortfarande att ta hela tillståndet för de expires som finns i datauppsättningen, så när en slav väljs till en master kommer att kunna förfalla nycklarna självständigt, helt agera som en mästare.




  1. Hur uppdaterar jag dokumentfält i mongo db med java-drivrutinen?

  2. Förebyggande säkerhet med revisionsloggning för MongoDB

  3. RQ - Töm &Ta bort köer

  4. Redis transaktioner