HEXISTS helps you quickly check if a specific field exists inside a hash in Redis. It tells you yes or no.
You want to see if a user's profile has a certain attribute before updating it.
You need to check if a product has a price field before calculating discounts.
You want to verify if a configuration setting exists before applying it.
You want to avoid overwriting data by checking if a field is already set.
You want to confirm if a session key has a particular property before processing.
Syntax
Redis
HEXISTS key field
key is the name of the hash you want to check.
field is the specific field inside the hash you want to verify.
Examples
Check if the field name exists in the hash user:1000.
Redis
HEXISTS user:1000 name
Check if the field price exists in the hash product:200.
Redis
HEXISTS product:200 price
Check if the field theme exists in the hash config:app.
Redis
HEXISTS config:app theme
Sample Program
First, we add fields name and age to the hash user:1. Then, we check if name exists (should be yes) and if email exists (should be no).
Redis
HSET user:1 name "Alice" age 30
HEXISTS user:1 name
HEXISTS user:1 email
OutputSuccess
Important Notes
HEXISTS returns 1 if the field exists, otherwise 0.
It only checks for the field inside the hash, not the key itself.
If the hash key does not exist, HEXISTS returns 0.
Summary
HEXISTS checks if a field exists inside a Redis hash.
It returns 1 for yes, 0 for no.
Use it to avoid errors or unwanted overwrites when working with hashes.
Practice
(1/5)
1. What does the Redis command HEXISTS key field do?
easy
A. Deletes the specified field from the hash
B. Sets a new field in the hash
C. Returns all fields and values in the hash
D. Checks if the specified field exists in the hash stored at key
Solution
Step 1: Understand the HEXISTS command purpose
HEXISTS checks if a specific field exists inside a Redis hash stored at a given key.
Step 2: Identify the correct behavior
It returns 1 if the field exists, otherwise 0. It does not delete, list, or set fields.
Final Answer:
Checks if the specified field exists in the hash stored at key -> Option D
Quick Check:
HEXISTS checks field existence = B [OK]
Hint: HEXISTS returns 1 if field exists, else 0 [OK]
Common Mistakes:
Confusing HEXISTS with HDEL (delete)
Thinking HEXISTS returns the field value
Assuming HEXISTS lists all fields
2. Which of the following is the correct syntax to check if field age exists in hash user:1 using HEXISTS?
easy
A. HEXISTS user:1 age
B. HEXISTS age user:1
C. HEXISTS user:1:age
D. HEXISTS user:1, age
Solution
Step 1: Recall HEXISTS command syntax
The correct syntax is HEXISTS key field, where key is the hash key and field is the field name.
Step 2: Match syntax with options
HEXISTS user:1 age matches the correct syntax: HEXISTS user:1 age. Other options have wrong order or invalid format.
Final Answer:
HEXISTS user:1 age -> Option A
Quick Check:
HEXISTS key field syntax = C [OK]
Hint: Remember HEXISTS key field order exactly [OK]
Common Mistakes:
Swapping key and field positions
Using colon between key and field
Adding commas between arguments
3. Given the Redis hash user:2 with fields {"name": "Alice", "email": "alice@example.com"}, what will HEXISTS user:2 phone return?
medium
A. 1
B. Error
C. 0
D. nil
Solution
Step 1: Check if field 'phone' exists in hash user:2
The hash has fields 'name' and 'email' only. 'phone' is not present.
Step 2: Understand HEXISTS return value
HEXISTS returns 1 if field exists, 0 if it does not. Since 'phone' is missing, it returns 0.
Final Answer:
0 -> Option C
Quick Check:
Field missing returns 0 = D [OK]
Hint: HEXISTS returns 0 for missing fields [OK]
Common Mistakes:
Expecting nil instead of 0
Thinking it returns an error for missing fields
Confusing with HGET which returns nil
4. You run the command HEXISTS user:3 name but get an error. Which of the following is the most likely cause?
medium
A. The field name is misspelled
B. The key user:3 exists but is not a hash
C. HEXISTS requires two fields to check
D. Redis server is down
Solution
Step 1: Understand HEXISTS error causes
HEXISTS returns error if the key exists but is not a hash type. If key does not exist, it returns 0, no error.
Step 2: Eliminate distractors
Misspelled field returns 0, no error. HEXISTS checks one field. Server down causes connection failure, not command error. Wrong key type causes WRONGTYPE error.
Final Answer:
The key user:3 exists but is not a hash -> Option B
Quick Check:
Wrong key type causes HEXISTS error = A [OK]
Hint: Check key type before HEXISTS to avoid errors [OK]
Common Mistakes:
Assuming misspelled field causes error
Thinking HEXISTS needs multiple fields
Ignoring key type mismatch
5. You want to add a field status to a Redis hash order:100 only if it does not already exist. Which sequence of commands correctly uses HEXISTS to check before adding?
hard
A. HEXISTS order:100 status
IF 0 THEN HSET order:100 status 'pending' END
B. HSET order:100 status 'pending'
HEXISTS order:100 status
C. HEXISTS order:100 status
IF 1 THEN HSET order:100 status 'pending' END
D. HGET order:100 status
IF nil THEN HSET order:100 status 'pending' END
Solution
Step 1: Understand the goal
You want to add 'status' only if it does not exist, so first check with HEXISTS if field is missing (returns 0).
Step 2: Analyze command sequences
HEXISTS order:100 status
IF 0 THEN HSET order:100 status 'pending' END checks HEXISTS, then if result is 0 (field missing), it sets the field. This matches the requirement. HSET order:100 status 'pending'
HEXISTS order:100 status sets field unconditionally first. HEXISTS order:100 status
IF 1 THEN HSET order:100 status 'pending' END sets field if HEXISTS returns 1 (field exists), which is wrong. HGET order:100 status
IF nil THEN HSET order:100 status 'pending' END uses HGET and nil check, which is valid but not using HEXISTS as asked.
Final Answer:
HEXISTS order:100 status
IF 0 THEN HSET order:100 status 'pending' END -> Option A
Quick Check:
Check HEXISTS=0 before HSET = A [OK]
Hint: Add field only if HEXISTS returns 0 [OK]
Common Mistakes:
Setting field without checking existence
Checking HEXISTS=1 to add field
Using HGET instead of HEXISTS when asked
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.