Bird
Raised Fist0
Redisquery~20 mins

GETRANGE and SETRANGE in Redis - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Redis String Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
What is the output of GETRANGE after SETRANGE?
Given a Redis key mykey with initial value "Hello World", what will be the result of GETRANGE mykey 6 10 after running SETRANGE mykey 6 "Redis"?
Redis
SET mykey "Hello World"
SETRANGE mykey 6 "Redis"
GETRANGE mykey 6 10
A"World"
B"Redis"
C"Redisorld"
D"Hello"
Attempts:
2 left
💡 Hint
Remember SETRANGE replaces part of the string starting at the given offset.
❓ query_result
intermediate
2:00remaining
What does GETRANGE return for out-of-bound indexes?
If the Redis key msg has value "OpenAI", what is the result of GETRANGE msg 3 10?
Redis
SET msg "OpenAI"
GETRANGE msg 3 10
A"nAI"
B"nAI\u0000\u0000\u0000\u0000"
C"OpenAI"
D""
Attempts:
2 left
💡 Hint
GETRANGE returns substring up to the end if end index is beyond string length.
📝 Syntax
advanced
2:00remaining
Which SETRANGE command is syntactically correct?
Choose the correct syntax to replace part of the string stored at key data starting at offset 4 with "Test".
ASETRANGE data "4" "Test"
BSETRANGE data 4 Test
CSETRANGE data 4 "Test"
DSETRANGE data 4 'Test'
Attempts:
2 left
💡 Hint
The offset must be an integer and the value a string enclosed in quotes.
❓ optimization
advanced
2:00remaining
Efficiently update a substring in a large Redis string
You have a large string stored in Redis key bigtext. You want to replace characters from position 1000 to 1004 with "Hello". Which command is the most efficient?
ASETRANGE bigtext 1000 "Hello"
B
GET bigtext
Modify substring in client
SET bigtext modified_string
CAPPEND bigtext "Hello"
D
GETRANGE bigtext 0 999
APPEND "Hello"
Attempts:
2 left
💡 Hint
SETRANGE modifies the string in place without transferring the whole string.
🧠 Conceptual
expert
3:00remaining
What happens if SETRANGE offset is beyond current string length?
If the Redis key key1 has value "abc", what is the result of SETRANGE key1 5 "xyz" followed by GET key1?
Redis
SET key1 "abc"
SETRANGE key1 5 "xyz"
GET key1
A"abc xyz"
BError: offset out of range
C"abcxyz"
D"abc\u0000\u0000xyz"
Attempts:
2 left
💡 Hint
SETRANGE pads with zero-bytes if offset is beyond string length.

Practice

(1/5)
1. What does the Redis command GETRANGE key 0 4 do?
easy
A. Returns the substring of the value stored at key from index 0 to 4 inclusive.
B. Deletes the first 5 characters of the string stored at key.
C. Replaces the first 5 characters of the string stored at key with zeros.
D. Returns the length of the string stored at key.

Solution

  1. Step 1: Understand GETRANGE parameters

    The command GETRANGE key start end returns the substring from the start index to the end index inclusive.
  2. Step 2: Apply to given indices

    With start=0 and end=4, it returns characters at positions 0,1,2,3,4 from the string stored at key.
  3. Final Answer:

    Returns substring from index 0 to 4 inclusive -> Option A
  4. Quick Check:

    GETRANGE extracts substring = A [OK]
Hint: GETRANGE extracts substring by start and end indexes [OK]
Common Mistakes:
  • Thinking GETRANGE deletes or modifies the string
  • Confusing GETRANGE with SETRANGE
  • Assuming end index is exclusive
2. Which of the following is the correct syntax to replace part of a string value in Redis using SETRANGE?
easy
A. SETRANGE key value offset
B. SETRANGE key offset value
C. SET key offset value
D. GETRANGE key offset value

Solution

  1. Step 1: Recall SETRANGE syntax

    The correct syntax is SETRANGE key offset value, where offset is the start position to replace and value is the new substring.
  2. Step 2: Check options

    Only SETRANGE key offset value matches this syntax exactly.
  3. Final Answer:

    SETRANGE key offset value -> Option B
  4. Quick Check:

    Correct SETRANGE syntax = A [OK]
Hint: Remember SETRANGE order: key, offset, then value [OK]
Common Mistakes:
  • Swapping offset and value positions
  • Using GETRANGE instead of SETRANGE
  • Using SET instead of SETRANGE
3. Given the Redis string value at key mykey is "HelloWorld", what will be the result of GETRANGE mykey 5 7?
medium
A. "World"
B. "Hello"
C. "loW"
D. "Wor"

Solution

  1. Step 1: Identify substring indices

    The string is "HelloWorld" with indices: H(0), e(1), l(2), l(3), o(4), W(5), o(6), r(7), l(8), d(9).
  2. Step 2: Extract substring from index 5 to 7

    Characters at 5,6,7 are 'W', 'o', 'r', so the substring is "Wor".
  3. Final Answer:

    "Wor" -> Option D
  4. Quick Check:

    GETRANGE returns substring = B [OK]
Hint: Count string indexes from 0 to get substring [OK]
Common Mistakes:
  • Counting indexes starting at 1
  • Including characters outside the range
  • Confusing GETRANGE with SETRANGE
4. You run SETRANGE mykey 3 "abc" on a Redis string "abcdef". The result is unexpected. What is the likely mistake?
medium
A. Using quotes around the substring value in the command.
B. Offset 3 is out of range for the string length.
C. SETRANGE cannot modify existing strings.
D. The key mykey does not exist.

Solution

  1. Step 1: Understand SETRANGE usage

    SETRANGE expects the substring value without quotes; quotes are interpreted literally.
  2. Step 2: Identify the mistake

    Using quotes like "abc" inserts the quotes as characters, causing unexpected results.
  3. Final Answer:

    Using quotes around substring causes wrong replacement -> Option A
  4. Quick Check:

    Quotes in SETRANGE value cause errors = C [OK]
Hint: Do not include quotes around substring in SETRANGE [OK]
Common Mistakes:
  • Including quotes around substring value
  • Assuming offset must be within string length
  • Thinking SETRANGE creates new keys automatically
5. If the Redis key text holds the string "abcdefghij", what will be the final string after executing SETRANGE text 5 "XYZ" followed by GETRANGE text 3 7?
hard
A. "defgh"
B. "fghij"
C. "deXYZ"
D. "defXY"

Solution

  1. Step 1: Apply SETRANGE at offset 5

    Original string: "abcdefghij". SETRANGE replaces characters at positions 5,6,7 with "XYZ". Positions: a(0), b(1), c(2), d(3), e(4), f(5), g(6), h(7), i(8), j(9). After replacement: "abcdeXYZij".
  2. Step 2: Apply GETRANGE from 3 to 7

    Characters at positions 3 to 7 are: d(3), e(4), X(5), Y(6), Z(7). So substring is "deXYZ".
  3. Final Answer:

    "deXYZ" -> Option C
  4. Quick Check:

    SETRANGE modifies substring, GETRANGE extracts it = D [OK]
Hint: Apply SETRANGE first, then GETRANGE on updated string [OK]
Common Mistakes:
  • Not updating string before GETRANGE
  • Miscounting offset positions
  • Assuming GETRANGE returns original string
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