2017-03-06 2 views
-1

Szenario:Filtering großen Satz mit Redis

ich eine große Liste von Produkten, die die folgenden Eigenschaften haben

  • Diese Produktverfügbarkeit/Preis (Ursprungsdaten) zwischengespeichert werden und wird von mehreren verwendet werden Kunden.

  • Jeder Kunde hat unterschiedliche Markup-Regeln für sie und daher unterschiedliche Endpreise.

brauche ich Filterung auf diesen über den Preis Produkte anzuwenden, etc ..

jedoch sie von redis Laden und Wieder Anwendung von Regeln Filter zu bauen mit redis teuer ist.

Gibt es einen besseren Weg, dies zu tun?

+0

unter meiner Antwort Siehe finden. Hat es geholfen? – Sheinbergon

Antwort

0

Dies ist bis zu einem gewissen Grad möglich, durch sortedsets (Z * Befehle) lexikalische Reihenfolge & Verbindung sortierten eingestellten Elementschlüssel unter der Annahme, dass die Verwendung von:

  • Filterkriterien werden ein Teil der sortierten eingestellten Elementschlüssel
  • Filterkriterien sind endlich & deterministisch (alle von ihnen erscheinen alle von jedem Mitglied in der Liste, oder zumindest kann es so dargestellt werden mit einer Art von Platzhalter wie das Schlüsselwort :na: wo Kriterien nicht vorhanden ist)
  • Filtering Kriterium ia-Werte sind skalarer Natur und stellen keine Datenmenge dar. Beachten Sie, dass dies nicht obligatorisch ist, aber wenn Sie immer noch Daten darstellen, die zu weit reichenden Wertschlüsseln gehören, werden Sie mit "kartesischen Produkten" enden, was die Wartung des Repositorys (Schreiben/Aktualisieren) zu einem Albtraum macht , viel zu viele Schlüssel für Ihre Redis-Instanz oder sogar Cluster.

Wenn alle der oben genannten gelten, SCAN (oder ZSCAN genauer zu sein), ist dein Freund

Sie auch weitere Informationen here