Working with Sorted Sets

1. Adding Sorted Set Members

CommandFlags
ZADD key [NX|XX] [GT|LT] [CH] [INCR] score m [score m ...]NX add only, XX update only, GT/LT compare, CH return changed count, INCR like ZINCRBY

Example: Leaderboard update

ZADD leaderboard 1500 alice 1200 bob
ZADD leaderboard GT 1800 alice    # only update if 1800 > current

2. Removing Members

CommandDescription
ZREM key m [m ...]Remove specific members
ZREMRANGEBYRANK key start stopRemove by index
ZREMRANGEBYSCORE key min maxRemove by score
ZREMRANGEBYLEX key min maxRemove by lex range

3. Getting Members by Rank

CommandNotes
ZRANGE key start stop [REV] [WITHSCORES]Unified range command 6.2+
ZRANGE key min max BYSCORE [LIMIT off cnt]Score-based
ZRANGE key min max BYLEXLex range (equal scores)
ZRANGESTORE dst src ...Store range to another zset

4. Getting Members by Score

ZRANGEBYSCORE prices 10 50 WITHSCORES LIMIT 0 100
ZRANGE prices (10 50 BYSCORE          # exclusive 10, inclusive 50
ZRANGE prices -inf +inf BYSCORE       # all
NotationMeaning
(valueExclusive
-inf / +infUnbounded

5. Getting Member Score

CommandReturns
ZSCORE key memberScore or nil
ZMSCORE key m1 m2 ...Array of scores 6.2+

6. Getting Member Rank

CommandDirection
ZRANK key member [WITHSCORE]0-based ascending 7.2+
ZREVRANK key member [WITHSCORE]0-based descending

7. Getting Set Cardinality

CommandReturns
ZCARD keyTotal member count

8. Counting by Score Range

CommandDescription
ZCOUNT key min maxCount in score range
ZLEXCOUNT key min maxCount in lex range

9. Incrementing Member Score

CommandReturns
ZINCRBY key amount memberNew score as string

10. Removing by Rank

ZREMRANGEBYRANK leaderboard 0 -101   # keep top 100
CommandReturns
ZREMRANGEBYRANK key start stopRemoved count

11. Removing by Score

CommandReturns
ZREMRANGEBYSCORE key min maxRemoved count

12. Popping Min and Max Members

CommandDescription
ZPOPMIN key [count]Lowest scored
ZPOPMAX key [count]Highest scored
BZPOPMIN k1 k2 ... timeoutBlocking variant
ZMPOP numkeys k1 ... MIN|MAX [COUNT n]Pop from first non-empty 7.0+

13. Computing Sorted Set Union

CommandAggregation
ZUNION numkeys k1 ... [WEIGHTS] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]Returns members
ZUNIONSTORE dst numkeys k1 ...Stores result

14. Computing Sorted Set Intersection

CommandDescription
ZINTER numkeys k1 ...Intersection
ZINTERSTORE dst numkeys k1 ...Store result
ZINTERCARD numkeys k1 ... [LIMIT n]Cardinality only 7.0+
ZDIFF numkeys k1 k2 ...Difference
ZDIFFSTORE dst numkeys k1 ...Store difference

15. Scanning Sorted Set

CommandReturns
ZSCAN key cursor [MATCH p] [COUNT n]Member/score pairs