Bird
Raised Fist0
Redisquery~10 mins

Priority queue pattern in Redis - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add an item with a priority to a Redis sorted set.

Redis
ZADD tasks [1] "task1"
Drag options to blanks, or click blank then click option'
Atasks
B"task1"
CZADD
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Putting the member before the score
Using the key name as the score
2fill in blank
medium

Complete the code to get the highest priority item from the Redis sorted set.

Redis
ZRANGE tasks [1] [2] WITHSCORES
Drag options to blanks, or click blank then click option'
A1
B0
C-1
D-2
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 0 returns the lowest priority item
Using positive indexes to get the last element
3fill in blank
hard

Fix the error in the code to remove the highest priority item from the sorted set.

Redis
ZREM tasks [1]
Drag options to blanks, or click blank then click option'
A"task1"
BZRANGE tasks -1 -1
CZPOPMAX tasks
DZREM tasks -1
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to remove by index or command instead of member name
Using ZREM with a negative index
4fill in blank
hard

Fill both blanks to atomically pop the highest priority item from the sorted set.

Redis
ZPOPMAX [1] [2]
Drag options to blanks, or click blank then click option'
Atasks
B1
C0
Dtask1
Attempts:
3 left
💡 Hint
Common Mistakes
Using member name instead of key as first argument
Using 0 as count which pops nothing
5fill in blank
hard

Fill all three blanks to add a task with priority, then get and remove the highest priority task.

Redis
ZADD [1] [2] "task2"
result = ZPOPMAX [3] 1
Drag options to blanks, or click blank then click option'
Atasks
B5
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using different keys for add and pop
Using a string instead of a number for priority

Practice

(1/5)
1. What does a priority queue in Redis typically use to manage item importance?
easy
A. Lists with push and pop operations
B. Hashes with key-value pairs
C. Sorted sets with scores representing priority
D. Strings storing serialized data

Solution

  1. Step 1: Understand Redis data structures

    Redis offers several data types; sorted sets allow ordering by score.
  2. Step 2: Identify priority queue implementation

    Priority queues use sorted sets where scores represent priority levels.
  3. Final Answer:

    Sorted sets with scores representing priority -> Option C
  4. Quick Check:

    Priority queue = sorted sets with scores [OK]
Hint: Remember: sorted sets sort by score for priority [OK]
Common Mistakes:
  • Confusing lists with priority queues
  • Using hashes which don't order by score
  • Thinking strings can manage priority
2. Which Redis command adds an item with a priority score to a priority queue?
easy
A. HSET
B. ZADD
C. LPUSH
D. SET

Solution

  1. Step 1: Identify command to add to sorted sets

    ZADD adds members with scores to sorted sets in Redis.
  2. Step 2: Match command to priority queue addition

    Priority queues use sorted sets, so ZADD is the correct command.
  3. Final Answer:

    ZADD -> Option B
  4. Quick Check:

    Add to priority queue = ZADD [OK]
Hint: Use ZADD to add with score in sorted sets [OK]
Common Mistakes:
  • Using LPUSH which is for lists
  • Using HSET which is for hashes
  • Using SET which is for strings
3. Given the commands:
ZADD tasks 1 "task1" 3 "task3" 2 "task2"
ZPOPMIN tasks

What will be the output of ZPOPMIN tasks?
medium
A. ["task1", "1"]
B. ["task3", "3"]
C. ["task2", "2"]
D. Syntax error

Solution

  1. Step 1: Understand ZADD insertion

    Three tasks added with scores 1, 3, and 2 respectively.
  2. Step 2: Understand ZPOPMIN behavior

    ZPOPMIN removes and returns the member with the lowest score, which is "task1" with score 1.
  3. Final Answer:

    ["task1", "1"] -> Option A
  4. Quick Check:

    Lowest score item popped = task1 [OK]
Hint: ZPOPMIN returns lowest score member first [OK]
Common Mistakes:
  • Picking highest score instead of lowest
  • Confusing ZPOPMIN with ZPOPMAX
  • Expecting syntax error from valid commands
4. What is wrong with this Redis command sequence for a priority queue?
ZADD queue "task1" 1
ZPOPMIN queue
medium
A. ZADD requires at least two members
B. ZPOPMIN does not remove items
C. Queue key must be a list, not a sorted set
D. ZADD syntax is incorrect; score must come before member

Solution

  1. Step 1: Check ZADD command syntax

    ZADD syntax requires the score before the member, but here member is before score.
  2. Step 2: Verify ZPOPMIN behavior

    ZPOPMIN removes the lowest score member correctly; no issue here.
  3. Final Answer:

    ZADD syntax is incorrect; score must come before member -> Option D
  4. Quick Check:

    ZADD syntax = score before member [OK]
Hint: Score always before member in ZADD [OK]
Common Mistakes:
  • Swapping score and member in ZADD
  • Thinking ZPOPMIN doesn't remove items
  • Using wrong data type for priority queue
5. You want to implement a priority queue in Redis where lower scores mean higher priority. You add tasks:
ZADD jobs 5 "job5" 1 "job1" 3 "job3"

Then you run:
ZPOPMIN jobs 2

What will be the result and what remains in the queue?
hard
A. Returns ["job1", "1", "job3", "3"]; queue left with ["job5"]
B. Returns ["job5", "3", "job3", "1"]; queue left with ["job1"]
C. Returns ["job1", "5", "job3", "3"]; queue left with ["job5"]
D. Returns error because ZPOPMIN cannot pop multiple items

Solution

  1. Step 1: Understand ZPOPMIN with count

    ZPOPMIN with argument 2 pops two lowest score members.
  2. Step 2: Identify lowest scores and remaining items

    Lowest scores are 1 (job1) and 3 (job3), so these are popped; job5 with score 5 remains.
  3. Final Answer:

    Returns ["job1", "1", "job3", "3"]; queue left with ["job5"] -> Option A
  4. Quick Check:

    ZPOPMIN 2 pops two lowest score items [OK]
Hint: ZPOPMIN count pops that many lowest score items [OK]
Common Mistakes:
  • Mixing up scores and members order
  • Thinking ZPOPMIN pops highest scores
  • Assuming ZPOPMIN can't pop multiple items
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard