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

Redis:Wie schneidet man eine normale Menge mit einer sortierten Menge?

Für Ihr Problem gibt es eine einfache Lösung:ZINTERSTORE funktioniert mit einem SET und ein ZSET . Versuchen Sie:

redis> sadd foo a
(integer) 1
redis> zadd bar 1 a
(integer) 1
redis> zadd bar 2 b
(integer) 1
redis> zinterstore baz 2 foo bar AGGREGATE MAX
(integer) 1
redis> zrange baz 0 -1 withscores
1) "a"
2) "1"

Bearbeiten: Ich habe AGGREGATE MAX hinzugefügt oben, da redis jedem Mitglied der (nicht sortierten) Menge foo gibt eine Standardpunktzahl von 1 , und SUM dass mit welcher Punktzahl es in der (sortierten) Menge bar hat .