Using the TYPE Command to Check Key Types in Redis
📖 Scenario: You are managing a Redis database that stores different types of data such as strings, lists, and hashes. To work efficiently, you need to know the type of data stored at each key.
🎯 Goal: Build a small Redis script that sets keys with different data types and uses the TYPE command to check and confirm the type of each key.
📋 What You'll Learn
Create three keys with exact names: user:name, user:emails, and user:profile.
Set user:name as a string with the value "Alice".
Set user:emails as a list with the values "alice@example.com" and "alice.work@example.com".
Set user:profile as a hash with fields age set to 30 and city set to "New York".
Use the TYPE command to check the type of each key exactly as named.
💡 Why This Matters
🌍 Real World
In real applications, Redis stores many types of data. Knowing the type of each key helps avoid errors and manage data correctly.
💼 Career
Database administrators and backend developers often need to check key types in Redis to maintain data integrity and optimize queries.
Progress0 / 4 steps
1
Create keys with different data types
Create three keys in Redis with these exact commands: set user:name to "Alice", create a list user:emails with "alice@example.com" and "alice.work@example.com", and create a hash user:profile with fields age set to 30 and city set to "New York".
Redis
Hint
Use SET for strings, LPUSH for lists, and HSET for hashes.
2
Prepare to check key types
Prepare to check the type of each key by writing the TYPE command for the key user:name.
Redis
Hint
Use TYPE user:name to check the type of the key user:name.
3
Check types of all keys
Add TYPE commands to check the types of the keys user:emails and user:profile exactly as named.
Redis
Hint
Use TYPE user:emails and TYPE user:profile to check their types.
4
Complete the Redis script
Ensure the Redis script includes all commands to set the keys and check their types in this exact order: SET user:name, LPUSH user:emails, HSET user:profile, then TYPE user:name, TYPE user:emails, and TYPE user:profile.
Redis
Hint
Make sure all commands are included and in the correct order.
Practice
(1/5)
1. What does the Redis TYPE command do?
easy
A. It deletes the key from the database.
B. It sets a new value for the key.
C. It returns the data type stored at a given key.
D. It lists all keys in the database.
Solution
Step 1: Understand the purpose of TYPE command
The TYPE command is used to find out what kind of data is stored at a specific key in Redis.
Step 2: Compare with other commands
Unlike commands that delete, set, or list keys, TYPE only returns the data type like string, list, or none.
Final Answer:
It returns the data type stored at a given key. -> Option C
Quick Check:
TYPE command = returns key data type [OK]
Hint: TYPE shows key's data type before operations [OK]
Common Mistakes:
Confusing TYPE with DEL command
Thinking TYPE changes data
Assuming TYPE lists keys
2. Which of the following is the correct syntax to check the type of a key named user:1 in Redis?
easy
A. TYPE user:1
B. GET TYPE user:1
C. CHECKTYPE user:1
D. TYPE(key=user:1)
Solution
Step 1: Recall Redis TYPE command syntax
The correct syntax is simply TYPE keyname, so for key user:1, it is TYPE user:1.
Step 2: Identify incorrect syntax options
Options B, C, and D use invalid commands or formats not supported by Redis.
Final Answer:
TYPE user:1 -> Option A
Quick Check:
Correct syntax = TYPE keyname [OK]
Hint: Use TYPE followed by key name directly [OK]
Common Mistakes:
Adding extra keywords like GET or CHECKTYPE
Using parentheses or wrong command names
Confusing with other Redis commands
3. Given these Redis commands executed in order:
SET name "Alice"
LPUSH colors "red"
SADD tags "new"
TYPE name
TYPE colors
TYPE tags
TYPE age
What will be the output of the last four TYPE commands respectively?
medium
A. ["none", "list", "set", "string"]
B. ["string", "set", "list", "none"]
C. ["list", "string", "set", "none"]
D. ["string", "list", "set", "none"]
Solution
Step 1: Identify data types set by commands
SET name "Alice" creates a string key. LPUSH colors "red" creates a list. SADD tags "new" creates a set. age key is not set, so it does not exist.
Step 2: Match TYPE outputs to keys
TYPE name returns "string". TYPE colors returns "list". TYPE tags returns "set". TYPE age returns "none" because key does not exist.
Final Answer:
["string", "list", "set", "none"] -> Option D
Quick Check:
TYPE outputs = [string, list, set, none] [OK]
Hint: Match commands to Redis data types exactly [OK]
Common Mistakes:
Mixing up list and set types
Assuming missing keys return error instead of none
Confusing string with other types
4. You run the command TYPE mykey but get an unexpected output. Which of these is a likely cause?
medium
A. You used TYPE with wrong syntax like TYPE(mykey).
B. You tried to use TYPE on a key with a value longer than 100 characters.
C. The Redis server is down.
D. The key mykey does not exist in the database.
Solution
Step 1: Check command syntax
Redis TYPE command requires syntax: TYPE keyname without parentheses. Using TYPE(mykey) causes syntax error or unexpected output.
Step 2: Evaluate other options
If key does not exist, TYPE returns "none" (not unexpected). Server down causes connection errors, not TYPE output. Value length does not affect TYPE command.
Final Answer:
You used TYPE with wrong syntax like TYPE(mykey). -> Option A
Quick Check:
Correct syntax needed = TYPE keyname [OK]
Hint: Avoid parentheses in TYPE command syntax [OK]
Common Mistakes:
Using parentheses with TYPE command
Confusing missing key output with errors
Blaming value size for TYPE issues
5. You want to write a Redis script that checks the type of a key and performs different actions based on it. Which sequence correctly uses the TYPE command and handles the case where the key does not exist?
hard
A. Use EXISTS key and if true, assume type is "string".
B. Use TYPE key to get type, then check if result is "none" before proceeding.
C. Use GET key and if it returns null, assume type is "none".
D. Use TYPE key and ignore the "none" result since it means key is empty.
Solution
Step 1: Use TYPE command to get key type
The TYPE command returns the exact data type or "none" if the key does not exist.
Step 2: Check for "none" result before actions
Before performing actions, check if TYPE returned "none" to handle missing keys properly.
Final Answer:
Use TYPE key to get type, then check if result is "none" before proceeding. -> Option B
Quick Check:
Check TYPE result for "none" to handle missing keys [OK]
Hint: Always check TYPE output for "none" before actions [OK]
Common Mistakes:
Assuming GET null means type is string
Assuming EXISTS means type is string
Ignoring "none" type results
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.