2016-05-25 22 views
0

I Liste angezeigt werden soll von customers mit pagination .Structure von DB ist wie folgt:Paginierung Mit Php mit Redis DB

redis:> hset customerlist username userid (where username:almas userid:1) 
redis:> hmset customerlog:1 userid value1 name value2 contactno value3 
(where value1:1 , value2: almas sayyad, value3: 8676756556) 

I hash set verwendet haben und mit dem gleichen Datentyp fortsetzen möchten. Ich werde froh sein, wenn mir jemand die Lösung dafür geben kann.

Antwort

1

TL; DR Das Paginieren eines Hash ist nicht trivial - Sie sollten in Betracht ziehen, eine andere Datenstruktur zu verwenden, die für diese Aufgabe besser geeignet ist, nämlich das sortierte Set.

Hashes haben keine Reihenfolge, und die einzige Möglichkeit, ihre Felder iterieren zu können, ist HSCAN. Das Scannen ist jedoch ungeordnet, es können Duplikate zurückgegeben werden, und die Anzahl der Ergebnisse jedes Aufrufs ist unterschiedlich. Der Aufbau eines Paginierungsmechanismus ist zudem eine Herausforderung und ineffizient.

Sie können die Daten, d. H. Die Benutzer, in einem Hash speichern, aber auch die Feldnamen in einem Sorted Set speichern. Sie können jedem Benutzer eine Punktzahl geben, um sie zu bestellen, oder einfach die lexikographische Bestellung verwenden - auf jede Art und Weise können Sie mit dem sortierten Set paginieren.