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

Platzanforderungen für Redis-Datenstrukturen

Es ist viel mehr als Ihre Schätzung. Nehmen wir an, Ziplisten werden nicht verwendet (d. h. Sie haben eine beträchtliche Anzahl von Artikeln).

Eine Redis-Liste ist eine klassische doppelt verkettete Liste:3 Zeiger (prev,next,value) pro Element.

Ein sortierter Satz ist ein Wörterbuch plus eine Skip-Liste. Im Dictionary werden Items ebenfalls mit 3 Zeigern gespeichert (key,value,next). Der Speicherbedarf der Skip-Liste ist komplexer auszuwerten:Jeder Knoten benötigt 1 Double (Ergebnis), 2 Zeiger (obj, rückwärts) plus n Paare (Zeiger, Span-Wert) mit n zwischen 1 und 32. Die meisten Elemente benötigen nur 1 oder 2 Paare.

Mit anderen Worten, wenn es nicht als Ziplist dargestellt wird, ist ein sortierter Satz bei weitem die Redis-Datenstruktur mit dem größten Overhead. Im Vergleich zu einer Liste beträgt der Speicher-Overhead mehr als 200 % (d. h. das 3-fache).

Hinweis:Der beste Weg, den Speicherverbrauch mit Redis zu bewerten, besteht darin, zu versuchen, eine große Liste oder einen sortierten Satz mit Pseudodaten zu erstellen und INFO zu verwenden, um den Speicherbedarf zu ermitteln.