Redis
 sql >> Datenbank >  >> NoSQL >> Redis

redis - Verwenden von Hashes

Ja, es hängt mit der Effizienz zusammen.

Wir haben den immer hilfsbereiten Pieter Noordhuis, einen der Hauptentwickler von Redis, um Input gebeten, und er hat uns vorgeschlagen, Redis-Hashes zu verwenden. Hashes in Redis sind Wörterbücher, die sehr effizient im Speicher kodiert werden können; Die Redis-Einstellung „hash-zipmap-max-entries“ konfiguriert die maximale Anzahl von Einträgen, die ein Hash haben kann, während er dennoch effizient codiert wird. Wir fanden, dass diese Einstellung um 1000 herum am besten war; höher und die HSET-Befehle würden eine merkliche CPU-Aktivität verursachen. Weitere Einzelheiten finden Sie in der Zipmap-Quelldatei.

Kleine Hashes werden auf besondere Weise codiert (Zipmaps), das ist speichereffizient, macht aber Operationen O(N) statt O(1). Mit einer Zipmap mit 100.000 Feldern anstelle von 100 Zipmaps mit 1.000 Feldern erzielen Sie also keine Speichervorteile, aber alle Ihre Vorgänge werden 100-mal langsamer.