Bird
Raised Fist0
Redisquery~15 mins

HEXISTS for field check in Redis - Mini Project: Build & Apply

Choose your learning style10 modes available
Using HEXISTS to Check Fields in Redis Hashes
📖 Scenario: You are managing a Redis database that stores user profiles as hashes. Each user has fields like name, email, and age. You want to check if certain fields exist in these user profiles before performing updates or reads.
🎯 Goal: Build a small Redis command sequence to create a user hash, set a configuration field name to check, use HEXISTS to verify if that field exists in the hash, and then finalize the setup.
📋 What You'll Learn
Create a Redis hash called user:1000 with fields name, email, and age with exact values.
Create a variable called field_to_check with the value email.
Use the HEXISTS command with user:1000 and field_to_check to check if the field exists.
Add a final command to set a new field verified to yes in the user:1000 hash.
💡 Why This Matters
🌍 Real World
Redis hashes are commonly used to store user profiles or settings where quick field existence checks are needed before updates or reads.
💼 Career
Knowing how to use HEXISTS helps in writing efficient Redis queries for real-time applications like session stores, user management, and caching layers.
Progress0 / 4 steps
1
DATA SETUP: Create the user hash
Create a Redis hash called user:1000 with these exact fields and values: name set to John Doe, email set to john@example.com, and age set to 30.
Redis
Hint

Use the HSET command with the key user:1000 and specify each field and value.

2
CONFIGURATION: Set the field to check
Create a variable called field_to_check and set it to the string email.
Redis
Hint

Assign the string email to the variable field_to_check.

3
CORE LOGIC: Use HEXISTS to check the field
Use the HEXISTS command with the key user:1000 and the variable field_to_check to check if the field exists.
Redis
Hint

Use HEXISTS user:1000 email to check if the field exists.

4
COMPLETION: Add a verified field
Add a new field called verified with the value yes to the user:1000 hash using HSET.
Redis
Hint

Use HSET user:1000 verified yes to add the verified field.

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

  1. Step 1: Understand the HEXISTS command purpose

    HEXISTS checks if a specific field exists inside a Redis hash stored at a given key.
  2. Step 2: Identify the correct behavior

    It returns 1 if the field exists, otherwise 0. It does not delete, list, or set fields.
  3. Final Answer:

    Checks if the specified field exists in the hash stored at key -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    HEXISTS user:1 age -> Option A
  4. 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

  1. Step 1: Check if field 'phone' exists in hash user:2

    The hash has fields 'name' and 'email' only. 'phone' is not present.
  2. Step 2: Understand HEXISTS return value

    HEXISTS returns 1 if field exists, 0 if it does not. Since 'phone' is missing, it returns 0.
  3. Final Answer:

    0 -> Option C
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    The key user:3 exists but is not a hash -> Option B
  4. 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

  1. 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).
  2. 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.
  3. Final Answer:

    HEXISTS order:100 status IF 0 THEN HSET order:100 status 'pending' END -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard