Bird
Raised Fist0
Redisquery~5 mins

HEXISTS for field check in Redis - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: HEXISTS for field check
O(1)
Understanding Time Complexity

We want to understand how long it takes to check if a field exists in a Redis hash using HEXISTS.

Specifically, how the time changes when the hash grows bigger.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


# Check if field "user:123" exists in hash "session_data"
HEXISTS session_data user:123
    

This command checks if a specific field is present inside a Redis hash.

Identify Repeating Operations

Look for any repeated steps that affect time.

  • Primary operation: Searching for the field key inside the hash.
  • How many times: The search happens once per HEXISTS call.
How Execution Grows With Input

The time to find the field depends on how Redis stores the hash internally.

Input Size (n)Approx. Operations
10About 1 step (direct lookup)
100About 1 step (direct lookup)
1000About 1 step (direct lookup)

Pattern observation: The lookup time stays almost the same even if the hash grows larger.

Final Time Complexity

Time Complexity: O(1)

This means checking if a field exists takes about the same time no matter how many fields are in the hash.

Common Mistake

[X] Wrong: "Checking a field takes longer as the hash gets bigger because Redis must look through all fields."

[OK] Correct: Redis uses a fast internal structure (like a hash table) that lets it find fields quickly without scanning all entries.

Interview Connect

Knowing that Redis commands like HEXISTS run in constant time helps you understand how to design fast data checks in real projects.

Self-Check

"What if the hash was stored as a simple list instead of a hash table? How would the time complexity change?"

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