Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да получите DIFF на сортиран набор

Забележка:Предполагам, че сте имали предвид sadd disabled two

Както разбрахте, SDIFF не оперира с сортирани множества - това е защото дефинирането на разликата между сортираните множества не е тривиално.

Това, което бихте могли да направите, е първо да създадете временен набор със ZUNIONSTORE и да зададете резултатите на пресечната точка на 0. След това направете диапазон, изключващ 0, напр.:

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. Redis :Как да задам един ключ равен на стойността на друг ключ?

  2. Как да мигрирате Redis™ данни с помощта на Redis-Shake

  3. Планиране на задачи за целина с голямо ETA

  4. Как да получите всички ключове от Redis с помощта на шаблона Redis

  5. Мога ли да използвам Tornado+ Celery+ RabbitMQ + Redis?