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

Przecięcie dwóch lub więcej posortowanych zbiorów

Powinieneś najpierw sprawdzić, który ZSET ma mniej elementów z ZCARD, a sklonuj i przytnij krótszy.

Po drugie, zostawiasz 2 resztki. Możesz ponownie użyć tego samego pomocniczego ZSET aby mieć szybsze czyszczenie.

Chciałem również zasugerować DUMP i RESTORE dla klonu, ale w przypadku posortowanych zestawów ZUNIONSTORE jest w rzeczywistości znacznie szybszy. Oto czas obu dla zestawu 1M elementów:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zmienić nazwy pól w haszu dla wielu kluczy w Redis

  2. Jak zaimplementować Redis w CodeIgniterze?

  3. redis bgsave nie powiodło się, ponieważ fork nie może przydzielić pamięci

  4. Dostęp do zmiennej poza funkcją redis pipelining na Laravel

  5. Laravel:Redis Nie można było nawiązać połączenia:[tcp://127.0.0.1:6379]