Bird
Raised Fist0
Redisquery~3 mins

Why HEXISTS for field check in Redis? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

Discover how a simple command can save you from endless searching and mistakes!

The Scenario

Imagine you have a huge notebook where you write down your friends' phone numbers. To find if a friend's number is there, you flip through every page manually.

The Problem

Flipping through pages one by one is slow and tiring. You might miss the number or check the wrong page, causing mistakes and wasting time.

The Solution

Using HEXISTS is like having a magical index that instantly tells you if a friend's number is in your notebook without flipping pages.

Before vs After
✗ Before
// Check if field exists by fetching all fields and searching manually
HGETALL myhash
// then scan results in app code
✓ After
HEXISTS myhash fieldname
// returns 1 if exists, 0 if not
What It Enables

Instantly know if a specific field exists in a hash, saving time and avoiding errors.

Real Life Example

Before sending a message, your app quickly checks if the user's profile field exists to avoid errors or missing info.

Key Takeaways

Manual searching is slow and error-prone.

HEXISTS quickly checks field presence in a hash.

This makes data handling faster and safer.

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