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

Redis er langsom til at få store strenge

Redis er ikke designet til at opbevare meget store genstande. Det er ikke meningen, at du skal gemme hele din samling i en enkelt streng i Redis, men snarere bruge Redis-listen eller indstille som en beholder til dine objekter.

Ydermere er pickle-formatet ikke optimeret til plads ... du ville have brug for et mere kompakt format. Protokolbuffere, MessagePack eller endda almindelig JSON er sandsynligvis bedre til dette. Du bør overveje at anvende en let komprimeringsalgoritme, før du gemmer dine data (såsom Snappy, LZO, Quicklz, LZF, osv. ...).

Endelig er forestillingen sandsynligvis netværksbundet. På min maskine tager det 85 ms (ikke 3 sekunder) at hente et 20 MB objekt fra Redis. Nu, hvis jeg kører den samme test ved hjælp af en ekstern server, tager det 1,781 sekunder, hvilket forventes på dette 100 Mbit/s netværk. Varigheden er helt afhængig af netværkets båndbredde.

Sidste punkt:Sørg for at bruge en nyere Redis-version - en række optimeringer er blevet udført for at håndtere store objekter.



  1. FieldPath-feltnavne må ikke indeholde '.' i $gruppe

  2. Genbruger MongoDB slettet plads?

  3. Opret et Multikey-indeks i MongoDB

  4. Hvordan kombinerer de sorterede sæt Redis?