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

Redis è lento a ottenere stringhe di grandi dimensioni

Redis non è progettato per memorizzare oggetti molto grandi. Non dovresti archiviare l'intera raccolta in una singola stringa in Redis, ma piuttosto utilizzare l'elenco Redis o impostare come contenitore per i tuoi oggetti.

Inoltre, il formato pickle non è ottimizzato per lo spazio... servirebbe un formato più compatto. I buffer di protocollo, il MessagePack o anche il semplice JSON sono probabilmente migliori per questo. Dovresti considerare di applicare un algoritmo di compressione leggera prima di archiviare i tuoi dati (come Snappy, LZO, Quicklz, LZF, ecc ...).

Infine, la performance è probabilmente legata alla rete. Sulla mia macchina, il recupero di un oggetto da 20 MB da Redis richiede 85 ms (non 3 secondi). Ora, se eseguo lo stesso test utilizzando un server remoto, ci vogliono 1.781 secondi, che è previsto su questa rete da 100 Mbit/s. La durata dipende completamente dalla larghezza di banda della rete.

Ultimo punto:assicurati di utilizzare una versione Redis recente:sono state apportate numerose ottimizzazioni per gestire oggetti di grandi dimensioni.