Bird
Raised Fist0
Redisquery~10 mins

Real-time notification 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 publish a message to a Redis channel named 'alerts'.

Redis
redis_client.publish('alerts', [1])
Drag options to blanks, or click blank then click option'
A'New alert!'
Balerts
Cpublish
D'alerts'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the channel name as the message instead of a string message.
Forgetting to put quotes around the message.
2fill in blank
medium

Complete the code to subscribe to the Redis channel 'alerts' using a Redis client.

Redis
redis_client.subscribe([1])
Drag options to blanks, or click blank then click option'
Aalerts
B'alerts'
C'messages'
D'subscribe'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the channel name without quotes.
Using the wrong channel name.
3fill in blank
hard

Fix the error in the code to correctly handle incoming messages from the 'alerts' channel.

Redis
redis_client.on('message', function(channel, [1]) {
  console.log('Received:', [1])
});
Drag options to blanks, or click blank then click option'
Amsg
Bmessage
Cdata
Dalert
Attempts:
3 left
💡 Hint
Common Mistakes
Using a parameter name that does not match inside the function.
Confusing the channel name with the message parameter.
4fill in blank
hard

Fill both blanks to publish a JSON string notification with a type and content to the 'notifications' channel.

Redis
const notification = JSON.stringify({ type: [1], content: [2] });
redis_client.publish('notifications', notification);
Drag options to blanks, or click blank then click option'
A'info'
B'Hello, user!'
C'alert'
D'Welcome message'
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting quotes around string values.
Mixing up type and content values.
5fill in blank
hard

Fill all three blanks to subscribe to the 'notifications' channel and log parsed JSON messages with type and content.

Redis
redis_client.subscribe([1]);
redis_client.on('message', (channel, [2]) => {
  const data = JSON.parse([3]);
  console.log(`Type: ${data.type}, Content: ${data.content}`);
});
Drag options to blanks, or click blank then click option'
A'notifications'
Bmsg
Cmessage
D'alerts'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong channel name in subscribe.
Parsing the wrong variable inside the callback.

Practice

(1/5)
1. What is the main purpose of the PUBLISH command in Redis real-time notification pattern?
easy
A. To store data permanently
B. To send messages to a specific channel
C. To listen for messages on a channel
D. To delete a channel

Solution

  1. Step 1: Understand the role of PUBLISH

    The PUBLISH command is used to send messages to a channel in Redis.
  2. Step 2: Differentiate from SUBSCRIBE

    SUBSCRIBE listens for messages, but PUBLISH sends them.
  3. Final Answer:

    To send messages to a specific channel -> Option B
  4. Quick Check:

    PUBLISH sends messages [OK]
Hint: PUBLISH sends, SUBSCRIBE listens [OK]
Common Mistakes:
  • Confusing PUBLISH with SUBSCRIBE
  • Thinking PUBLISH stores data
  • Assuming PUBLISH deletes channels
2. Which of the following is the correct syntax to subscribe to a channel named news in Redis?
easy
A. LISTEN news
B. PUBLISH news
C. SUBSCRIBE('news')
D. SUBSCRIBE news

Solution

  1. Step 1: Recall Redis SUBSCRIBE syntax

    The correct syntax is SUBSCRIBE channel_name without parentheses.
  2. Step 2: Check each option

    SUBSCRIBE news matches the correct syntax. SUBSCRIBE('news') uses parentheses which is invalid in Redis CLI.
  3. Final Answer:

    SUBSCRIBE news -> Option D
  4. Quick Check:

    SUBSCRIBE channel_name [OK]
Hint: SUBSCRIBE uses plain command and channel name [OK]
Common Mistakes:
  • Using parentheses like a function call
  • Confusing PUBLISH with SUBSCRIBE
  • Using LISTEN which is not a Redis command
3. Consider this Redis command sequence:
SUBSCRIBE updates
PUBLISH updates "New message arrived"
What will the subscriber receive?
medium
A. "New message arrived" on the updates channel
B. No message because SUBSCRIBE blocks commands
C. An error because PUBLISH cannot be used after SUBSCRIBE
D. The message on a different channel

Solution

  1. Step 1: Understand SUBSCRIBE behavior

    SUBSCRIBE listens to messages on the specified channel and receives published messages.
  2. Step 2: Analyze PUBLISH effect

    PUBLISH sends the message "New message arrived" to the updates channel, which the subscriber listens to.
  3. Final Answer:

    "New message arrived" on the updates channel -> Option A
  4. Quick Check:

    SUBSCRIBE receives PUBLISH messages [OK]
Hint: SUBSCRIBE gets messages published to its channel [OK]
Common Mistakes:
  • Thinking SUBSCRIBE blocks all commands
  • Believing PUBLISH causes errors after SUBSCRIBE
  • Assuming messages go to wrong channels
4. You wrote this Redis command sequence:
SUBSCRIBE updates
PUBLISH updates "Hello"
UNSUBSCRIBE updates
PUBLISH updates "Bye"
Why does the subscriber not receive the "Bye" message?
medium
A. Because SUBSCRIBE blocks PUBLISH commands
B. Because PUBLISH only works before SUBSCRIBE
C. Because UNSUBSCRIBE stops listening to the channel
D. Because messages are lost after first publish

Solution

  1. Step 1: Understand UNSUBSCRIBE effect

    UNSUBSCRIBE removes the subscriber from the channel, so it stops receiving messages.
  2. Step 2: Analyze message delivery after UNSUBSCRIBE

    After unsubscribing, the subscriber no longer listens, so "Bye" is not received.
  3. Final Answer:

    Because UNSUBSCRIBE stops listening to the channel -> Option C
  4. Quick Check:

    UNSUBSCRIBE stops message reception [OK]
Hint: UNSUBSCRIBE stops listening, no more messages [OK]
Common Mistakes:
  • Thinking PUBLISH only works before SUBSCRIBE
  • Assuming messages are lost after first publish
  • Believing SUBSCRIBE blocks PUBLISH commands
5. You want to build a real-time notification system using Redis where multiple users subscribe to different channels. Which approach ensures users only get messages for their subscribed channels without missing any messages?
hard
A. Use PUBLISH/SUBSCRIBE pattern and keep subscribers connected continuously
B. Use Redis lists to push messages and clients poll periodically
C. Use PUBLISH to send messages and clients fetch keys manually
D. Use Redis transactions to lock channels during message send

Solution

  1. Step 1: Understand real-time delivery needs

    Real-time notifications require instant delivery without polling delays.
  2. Step 2: Evaluate options for message delivery

    PUBLISH/SUBSCRIBE keeps clients connected and delivers messages instantly to subscribed channels.
  3. Step 3: Compare with alternatives

    Polling (Use Redis lists to push messages and clients poll periodically) causes delays; fetching keys manually (Use PUBLISH to send messages and clients fetch keys manually) is inefficient; transactions (Use Redis transactions to lock channels during message send) do not help with message delivery.
  4. Final Answer:

    Use PUBLISH/SUBSCRIBE pattern and keep subscribers connected continuously -> Option A
  5. Quick Check:

    Continuous SUBSCRIBE ensures real-time messages [OK]
Hint: Keep subscribers connected with PUBLISH/SUBSCRIBE [OK]
Common Mistakes:
  • Using polling instead of real-time subscription
  • Trying to fetch messages manually
  • Misusing transactions for message delivery
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