Bird
Raised Fist0
Redisquery~5 mins

UNSUBSCRIBE behavior in Redis - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: UNSUBSCRIBE behavior
O(n)
Understanding Time Complexity

When using Redis PUB/SUB, the UNSUBSCRIBE command stops the client from receiving messages on certain channels.

We want to understand how the time it takes to unsubscribe changes as the number of channels grows.

Scenario Under Consideration

Analyze the time complexity of this Redis UNSUBSCRIBE command usage.


# Client is subscribed to multiple channels
UNSUBSCRIBE channel1 channel2 channel3
# Server removes client from these channels
# If no channels specified, unsubscribe from all

This code unsubscribes the client from one or more channels, or all if none are specified.

Identify Repeating Operations

Look for repeated actions inside the UNSUBSCRIBE process.

  • Primary operation: Removing the client from each specified channel's subscriber list.
  • How many times: Once per channel to unsubscribe; if no channels given, once per all subscribed channels.
How Execution Grows With Input

The time to unsubscribe grows with the number of channels you ask to leave.

Input Size (channels to unsubscribe)Approx. Operations
10About 10 removals
100About 100 removals
1000About 1000 removals

Pattern observation: The work grows directly with how many channels you unsubscribe from.

Final Time Complexity

Time Complexity: O(n)

This means the time to unsubscribe grows in a straight line with the number of channels you remove.

Common Mistake

[X] Wrong: "Unsubscribing from many channels happens instantly, no matter how many."

[OK] Correct: Each channel requires work to remove the client, so more channels mean more time.

Interview Connect

Understanding how commands scale helps you write efficient code and explain your reasoning clearly in interviews.

Self-Check

What if Redis stored subscribers in a way that allowed instant removal regardless of channel count? How would the time complexity change?

Practice

(1/5)
1. What does the UNSUBSCRIBE command do in Redis Pub/Sub?
easy
A. Creates a new subscription to a channel
B. Deletes the specified channels permanently
C. Sends a message to all subscribers of a channel
D. Stops receiving messages from specified channels

Solution

  1. Step 1: Understand the purpose of UNSUBSCRIBE

    The UNSUBSCRIBE command is used to stop receiving messages from channels you previously subscribed to.
  2. Step 2: Differentiate from other commands

    It does not delete channels or send messages; it only stops message delivery to the client.
  3. Final Answer:

    Stops receiving messages from specified channels -> Option D
  4. Quick Check:

    UNSUBSCRIBE stops message delivery [OK]
Hint: UNSUBSCRIBE stops messages, it does not delete channels [OK]
Common Mistakes:
  • Thinking UNSUBSCRIBE deletes channels
  • Confusing UNSUBSCRIBE with PUBLISH
  • Assuming UNSUBSCRIBE creates subscriptions
2. Which of the following is the correct syntax to unsubscribe from all channels in Redis?
easy
A. UNSUBSCRIBE *
B. UNSUBSCRIBE ALL
C. UNSUBSCRIBE
D. UNSUBSCRIBE ()

Solution

  1. Step 1: Recall UNSUBSCRIBE syntax

    To unsubscribe from all channels, you call UNSUBSCRIBE without any arguments.
  2. Step 2: Check each option

    UNSUBSCRIBE * uses '*', which is invalid syntax. UNSUBSCRIBE ALL and D are not valid Redis commands.
  3. Final Answer:

    UNSUBSCRIBE -> Option C
  4. Quick Check:

    UNSUBSCRIBE with no args unsubscribes all [OK]
Hint: No arguments means unsubscribe from all channels [OK]
Common Mistakes:
  • Using wildcard '*' with UNSUBSCRIBE
  • Adding extra keywords like ALL
  • Using parentheses in command
3. Given the following Redis Pub/Sub commands executed by a client:
SUBSCRIBE news sports
UNSUBSCRIBE news
What channels will the client still receive messages from?
medium
A. news only
B. sports only
C. news and sports
D. none

Solution

  1. Step 1: Analyze the subscription commands

    The client subscribes to 'news' and 'sports' channels initially.
  2. Step 2: Apply UNSUBSCRIBE command

    UNSUBSCRIBE news removes subscription to 'news' only, so 'sports' remains subscribed.
  3. Final Answer:

    sports only -> Option B
  4. Quick Check:

    UNSUBSCRIBE removes specified channels only [OK]
Hint: UNSUBSCRIBE removes only listed channels, others stay subscribed [OK]
Common Mistakes:
  • Assuming UNSUBSCRIBE removes all subscriptions
  • Confusing subscribed channels after UNSUBSCRIBE
  • Thinking UNSUBSCRIBE adds subscriptions
4. You run the command UNSUBSCRIBE sports but still receive messages from the sports channel. What is the most likely cause?
medium
A. You have multiple subscriptions to sports and only one was removed
B. UNSUBSCRIBE command has a syntax error
C. You never subscribed to the sports channel
D. Redis server does not support UNSUBSCRIBE

Solution

  1. Step 1: Understand multiple subscriptions

    Redis allows multiple subscriptions to the same channel from the same client connection.
  2. Step 2: Effect of UNSUBSCRIBE on multiple subscriptions

    UNSUBSCRIBE removes one subscription per channel per call; if subscribed multiple times, some remain.
  3. Final Answer:

    You have multiple subscriptions to sports and only one was removed -> Option A
  4. Quick Check:

    Multiple subscriptions require multiple UNSUBSCRIBE calls [OK]
Hint: Multiple subscriptions need multiple UNSUBSCRIBE calls [OK]
Common Mistakes:
  • Assuming one UNSUBSCRIBE removes all duplicates
  • Thinking UNSUBSCRIBE syntax is wrong
  • Believing Redis lacks UNSUBSCRIBE support
5. A client subscribed to channels news, sports, and weather. It wants to stop receiving messages only from news and weather but keep sports. Which command should it use?
hard
A. UNSUBSCRIBE news weather
B. UNSUBSCRIBE sports
C. UNSUBSCRIBE
D. UNSUBSCRIBE all

Solution

  1. Step 1: Identify channels to unsubscribe

    The client wants to stop messages from 'news' and 'weather' only.
  2. Step 2: Use UNSUBSCRIBE with specific channels

    UNSUBSCRIBE followed by channel names unsubscribes only those channels, keeping others subscribed.
  3. Final Answer:

    UNSUBSCRIBE news weather -> Option A
  4. Quick Check:

    UNSUBSCRIBE with channels removes only those [OK]
Hint: List channels in UNSUBSCRIBE to remove only those [OK]
Common Mistakes:
  • Using UNSUBSCRIBE with no args removes all
  • Trying UNSUBSCRIBE all which is invalid
  • Unsubscribing wrong channels
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