Mi chiedo se ci sia una funzione in redis che mi permetta di ottenere tutte le chiavi scadute (intendo un qualche tipo di evento, che mi dà l'opportunità di riprendere tutti i record di scadenza). Lo scopo è nel salvare i vecchi valori in un altro database. Ho sentito che è possibile utilizzare il meccanismo di pubblicazione, ma Google non può aiutarci con questa idea.Event on key expire
risposta
La versione di sviluppo corrente di redis contiene una nuova funzionalità: notifiche dello spazio delle chiavi. Documentazione: http://redis.io/topics/notifications
notifiche spazio delle chiavi consente ai clienti di abbonarsi a Pub/canali Sub, al fine di ricevere gli eventi che interessano i dati Redis fissati in qualche modo.
Esempi di eventi che è possibile ricevere sono i seguenti:
- Tutti i comandi che interessano una determinata chiave.
- Tutte le chiavi ricevono un'operazione LPUSH.
- Tutte le chiavi in scadenza nel database 0.
Si spera, renderà a stabile presto.
BTW, non sarà molto utile per aiutare a salvare i valori delle chiavi scadute. Quando viene emesso un evento di scadenza, il valore è già sparito.
L'evento scaduto incorporato generato dalla notifica dello spazio dei tasti non è accurato. Vedere l'ultima sezione del http://redis.io/topics/notifications
chiavi con un tempo di vivere associati sono scaduti da Redis in due modi:
Quando la chiave si accede da un comando e si trova ad essere scaduto.
Via un sistema di fondo che cerca le chiavi scadute in background, modo incrementale, in modo da essere in grado di raccogliere anche le chiavi che non sono mai accesso.
Gli eventi scaduti vengono generati quando un tasto si accede e si trova ad essere scaduto da uno dei sistemi di cui sopra, di conseguenza non ci sono garanzie che il server Redis sarà in grado di generare il evento scaduto nel momento in cui la durata della chiave per vivere raggiunge il valore di zero. Se nessun comando punta alla chiave costantemente e ci sono molte chiavi con un TTL associato, può esserci un ritardo significativo tra l'ora in cui l'ora della chiave per la vita scende a zero e il momento in cui viene generato l'evento scaduto .
Per implementare completamente un evento in scadenza, è necessario implementarlo autonomamente. Ad esempio, utilizzando un elenco ordinato (o un albero AVL) ordinato in base al tempo di scadenza e leggendo continuamente la coda dell'elenco (unqueue). Se il lettore trova che il tempo di scadenza non è stato raggiunto, dorme (tempo di scadenza - ora). In questo modo la precisione può essere controllata entro 10 ms.
Utilizzare redis-scheduler
.
Puoi trovarlo here
- 1. On-Session-expire-event?
- 2. JQuery "on appear" event
- 3. jquery .live on load event
- 4. javascript on window close event
- 5. INSERT ... ON KEY duplicati (non fare nulla)
- 6. Trigger su INSERT ON DUPLICATE KEY
- 7. MySQL ON DUPLICATE KEY - ultimo ID inserto?
- 8. On Duplicate Key Update - Multiple Columns
- 9. SQLite INSERT - ON DUPLICATE KEY UPDATE
- 10. Ricezione di key press e key release event nelle applicazioni per terminale Linux?
- 11. Add expire header senza mod_expires?
- 12. Fuel UX - Hook on change event della procedura guidata
- 13. Traducendo il modello `on` a Backbone di` event` hash
- 14. Fluent NHibernate enforce Not Nullable on Foreign Key Reference
- 15. "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
- 16. inserto di massa Eloquente, ON DUPLICATE KEY UPDATE
- 17. MySQL CARICARE DATI INFILA con ON DUPLICATE KEY UPDATE
- 18. Mysql: ON DUPLICATE KEY UPDATE TUTTI I VALORI?
- 19. SerializerClass field on Serializer save from primary key
- 20. jQuery function execute on Button Click and Enter/Return (key)
- 21. Come utilizzerei ON DUPLICATE KEY UPDATE nel mio modello CodeIgniter?
- 22. MySQL INSERT IGNORE o ON DUPLICATE KEY DO_NOTHING
- 23. ottenere mysql_insert_id() durante l'utilizzo ON DUPLICATE KEY UPDATE con PHP
- 24. errore Key on panda merge (a sinistra join)
- 25. ZF2 Event Trigger
- 26. mysql foreign key concept
- 27. Rails configuration key key base return nil
- 28. Unit test event javascript
- 29. Dichiarazione di UsersController :: beforeFilter() dovrebbe essere compatibile con AppController :: beforeFilter (torta \ Event \ Event $ event)
- 30. Bind Tasti multipli per KeyPress Event
non è lo stesso del link del commento precedente. quello riguarda le sessioni. questo post riguarda le chiavi volatili. – akonsu