📖 Scenario: You are managing a Redis database that stores user profiles as hashes. Each user profile contains fields like name, email, and age. Sometimes, you need to remove specific fields from a user's profile when they are no longer needed.
🎯 Goal: Learn how to use the HDEL command in Redis to remove specific fields from a hash representing a user profile.
📋 What You'll Learn
Create a Redis hash called user:1000 with fields name, email, and age.
Set a variable for the field name to remove.
Use the HDEL command to remove the specified field from the hash.
Verify the final hash contains only the remaining fields.
💡 Why This Matters
🌍 Real World
Managing user profiles or session data in Redis often requires updating or cleaning up hash fields efficiently.
💼 Career
Knowing how to manipulate Redis hashes and remove fields is essential for backend developers and database administrators working with Redis.
Progress0 / 4 steps
1
Create a Redis hash with user profile fields
Create a Redis hash called user:1000 with these exact fields and values: name set to "Alice", email set to "alice@example.com", and age set to 30. Use the HMSET command.
Redis
Hint
Use HMSET followed by the key user:1000 and then pairs of field names and values.
2
Set the field name to remove
Set a variable called field_to_remove with the value "email" to specify which field to delete from the hash.
Redis
Hint
Assign the string "email" to the variable field_to_remove.
3
Remove the specified field using HDEL
Use the HDEL command with the key user:1000 and the variable field_to_remove to delete the email field from the hash.
Redis
Hint
Use HDEL with the key and the field name stored in field_to_remove. Since Redis commands don't accept variables directly, write the field name explicitly.
4
Verify the remaining fields in the hash
Use the HGETALL command on user:1000 to check that only the name and age fields remain after removing email.
Redis
Hint
Use HGETALL with the key user:1000 to see all remaining fields and values.
Practice
(1/5)
1. What does the Redis command HDEL do?
easy
A. Renames a hash key
B. Deletes specified fields from a hash
C. Retrieves all fields from a hash
D. Adds new fields to a hash
Solution
Step 1: Understand the purpose of HDEL
The HDEL command is used to remove one or more fields from a Redis hash.
Step 2: Compare with other commands
Other commands like HSET add fields, HGETALL retrieves fields, and renaming keys is done by RENAME.
Final Answer:
Deletes specified fields from a hash -> Option B
Quick Check:
HDEL removes fields = D [OK]
Hint: HDEL always removes fields from a hash [OK]
Common Mistakes:
Confusing HDEL with HSET (adding fields)
Thinking HDEL renames keys
Assuming HDEL retrieves data
2. Which of the following is the correct syntax to remove the field age from a hash named user:1?
easy
A. HDEL age user:1
B. HREMOVE user:1 age
C. DEL user:1 age
D. HDEL user:1 age
Solution
Step 1: Recall HDEL syntax
The correct syntax is HDEL key field [field ...], so the key comes first, then the field(s).
Step 2: Check each option
HDEL user:1 age matches the syntax. HDEL age user:1 reverses key and field. DEL user:1 age uses DEL which deletes keys, not fields. HREMOVE user:1 age uses a non-existent command.
Final Answer:
HDEL user:1 age -> Option D
Quick Check:
HDEL key field = B [OK]
Hint: HDEL syntax: key first, then field(s) [OK]
Common Mistakes:
Swapping key and field order
Using DEL instead of HDEL
Using wrong command names
3. Given the hash user:2 with fields {"name":"Alice", "age":"30", "city":"NY"}, what will be the result of HDEL user:2 age city followed by HGETALL user:2?
medium
A. []
B. ["age", "30", "city", "NY"]
C. ["name", "Alice"]
D. ["name", "Alice", "age", "30"]
Solution
Step 1: Understand HDEL effect
The command HDEL user:2 age city removes the fields age and city from the hash.
Step 2: Check remaining fields
After removal, only the field name with value Alice remains. So HGETALL user:2 returns ["name", "Alice"].
4. You run the command HDEL user:3 name age but get an error. Which of the following is the most likely cause?
medium
A. The key user:3 holds the wrong kind of value
B. You cannot delete multiple fields at once
C. The command should be HREMOVE instead of HDEL
D. Field names must be numeric
Solution
Step 1: Check command validity
HDEL supports deleting multiple fields and is the correct command; HREMOVE does not exist.
Step 2: Consider error causes
HDEL returns (integer) 0 if the key does not exist (no error). It errors (WRONGTYPE) if the key exists but is not a hash.
Step 3: Most common cause
The most likely cause of an error is that the key user:3 holds the wrong kind of value.
Final Answer:
The key user:3 holds the wrong kind of value -> Option A
Quick Check:
Wrong type causes error = A [OK]
Hint: Check key type (TYPE key) before HDEL [OK]
Common Mistakes:
Thinking HDEL can't delete multiple fields
Using wrong command name
Assuming fields must be numbers
5. You have a Redis hash settings with fields {"theme":"dark", "font":"Arial", "notifications":"on", "volume":"75"}. You want to remove all fields except theme and notifications. Which command(s) should you run?
hard
A. HDEL settings font volume
B. HDEL settings theme notifications
C. DEL settings; HSET settings theme dark notifications on
D. HDEL settings font volume theme notifications
Solution
Step 1: Identify fields to remove
You want to keep theme and notifications, so remove font and volume.
Step 2: Choose correct HDEL usage
HDEL settings font volume deletes only font and volume, preserving the others. HDEL settings theme notifications deletes the fields you want to keep. DEL settings; HSET settings theme dark notifications on deletes the whole hash and recreates it, which is more complex. HDEL settings font volume theme notifications tries to delete all fields including those to keep.
Final Answer:
HDEL settings font volume -> Option A
Quick Check:
Remove unwanted fields only = C [OK]
Hint: HDEL only fields you want removed, keep others [OK]
Common Mistakes:
Deleting fields to keep
Deleting entire hash unnecessarily
Using wrong command to remove fields
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.