sql >> Databasteknik >  >> NoSQL >> Redis

Skärning mellan två eller flera sorterade uppsättningar

Du bör först kontrollera vilken ZSET har färre element med ZCARD, och klona och trimma den kortare.

För det andra, du lämnar 2 rester. Du kan återanvända samma extra ZSET för att få en snabbare städning.

Jag ville också föreslå DUMP och RESTORE för klonen, men för fallet med sorterade set är ZUNIONSTORE faktiskt mycket snabbare. Här är en timing för båda för en 1M elementuppsättning:

1) 1) (integer) 14
   2) (integer) 1444165498
   3) (integer) 936762
   4) Complexity info: N:1000000,M:1000000
   5) 1) "ZUNIONSTORE"
      2) "temp3"
      3) "1"
      4) "temp1"
      5) "WEIGHTS"
      6) "1"
2) 1) (integer) 13
   2) (integer) 1444165421
   3) (integer) 3166360
   4)
   5) 1) "evalsha"
      2) "48286113cfe4b389d516e98646e5f4e086decc34"
      3) "2"
      4) "temp1"
      5) "temp2"
      6) "0"


  1. Rails, Sidekiq - Redis NOAUTH

  2. Returnerar värde från asynkron funktion node.js

  3. MongoDB diakritisk känslig sökning visar inte alla rader med accent (ord med diakritiskt tecken) som förväntat och vice versa

  4. MongoDb-frågevillkor vid jämförelse av 2 fält