Puoi ordinare in base alle costanti memorizzate nelle chiavi.
Nel tuo esempio, posso ordinare 1.
usando quasi banalmente Redis. Se memorizzi gli altri valori di espressione dopo averli calcolati, puoi ordinarli anche in base a questi. Per 1.
, dovrai memorizzare il conteggio dell'elenco da qualche parte, presumo news:n:upvotes:count
.
Il trucco è usare il comando SORT. Ad esempio, il primo ordinamento sarebbe:
SORT news::list BY news:*:upvotes:count GET news:*->title GET news:*->url
...per ottenere titoli e URL ordinati per voti positivi, in ordine crescente.
Ci sono anche modificatori per alpha
ordinamento e asc/desc
ordinamento. Leggi interamente la pagina dei comandi, ne vale la pena.
PS:puoi avvolgere il conteggio, archiviare, ordinare ed eventualmente eliminare il conteggio in un ambiente MULTI/EXEC (una transazione).