Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak uzyskać DIFF na posortowanym zestawie?

Uwaga:Zakładam, że miałeś na myśli sadd disabled two

Jak już się dowiedziałeś, SDIFF nie działa na posortowanych zestawach - to dlatego, że określenie różnicy między posortowanymi zestawami nie jest trywialne.

Możesz najpierw utworzyć tymczasowy zestaw za pomocą ZUNIONSTORE i ustawić punktację przecięcia na 0. Następnie zrób zakres z wyłączeniem 0, np.:

127.0.0.1:6379> ZADD all 1 one 2 two 3 three
(integer) 3
127.0.0.1:6379> SADD disabled two
(integer) 1
127.0.0.1:6379> ZUNIONSTORE tmp 2 all disabled WEIGHTS 1 0 AGGREGATE MIN
(integer) 3
127.0.0.1:6379> ZREVRANGEBYSCORE tmp +inf 1 WITHSCORES
1) "three"
2) "3"
3) "one"
4) "1"



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zaktualizować redis po aktualizacji bazy danych?

  2. Uzyskiwanie adresu Redis Master z Sentinel C#

  3. Jak usunąć wszystko w Redis?

  4. Jak mogę znaleźć rozmiar tematu redis (podzbiór kluczy)?

  5. Dlaczego plik Redis dump.rdb o pojemności 500 MB zajmuje około 5,0 GB pamięci?