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

Progettazione della struttura dati Redis per l'ordinamento dei valori basati sul tempo

Usa i set riordinati.

I set ordinati memorizzano i dati in base ai "punteggi", quindi nel tuo caso, usa semplicemente un timestamp in millis; i dati verranno ordinati automaticamente, permettendoti di recuperare gli elementi storici utilizzando intervalli di date di inizio/fine, ecco un esempio...

Aggiungi elementi a un set ordinato...

zadd historical <timestamp> <dataValue>

..aggiungi alcuni dati di esempio..

 zadd historical 1 data1
 zadd historical 2 data2
 zadd historical 3 data3
 zadd historical 4 data4
 zadd historical 5 data5
 zadd historical 6 data6
 zadd historical 7 data7

..recupera un sottoinsieme di elementi utilizzando l'intervallo di inizio/fine...

 zrangebyscore historical 2 5

..restituisce...

1) "data2"
2) "data3"
3) "data4"
4) "data5"

Quindi, nel tuo caso, se vuoi recuperare tutti gli elementi storici dell'ultimo giorno, fai così...

zrangebyscore historical <currentTimeInMillis - 86400000> <currentTimeInMillis>