Bird
Raised Fist0
Redisquery~30 mins

GETRANGE and SETRANGE in Redis - Mini Project: Build & Apply

Choose your learning style10 modes available
Using GETRANGE and SETRANGE in Redis Strings
📖 Scenario: You are managing a Redis database that stores user profile descriptions as strings. Sometimes, you need to read a part of the description or update a small section without replacing the whole string.
🎯 Goal: Build a Redis string value and practice extracting a substring using GETRANGE and updating part of the string using SETRANGE.
📋 What You'll Learn
Create a Redis string key profile:1001 with the exact value "Hello, I am learning Redis commands!".
Define two variables start and end with values 7 and 17 respectively.
Use the GETRANGE command with profile:1001, start, and end to extract the substring.
Use the SETRANGE command to replace the substring starting at position 18 with "fun and easy!".
💡 Why This Matters
🌍 Real World
Redis strings are often used to store user data, logs, or messages where partial updates or reads are needed without fetching or rewriting the entire string.
💼 Career
Understanding GETRANGE and SETRANGE helps in optimizing Redis usage for real-time applications, improving performance by minimizing data transfer and update overhead.
Progress0 / 4 steps
1
DATA SETUP: Create the Redis string key
Create a Redis string key called profile:1001 and set its value exactly to "Hello, I am learning Redis commands!" using the SET command.
Redis
Hint

Use the SET command with the key and the exact string value.

2
CONFIGURATION: Define start and end positions
Define two variables called start and end with values 7 and 17 respectively. Use the SET command with keys start and end to store these values as strings.
Redis
Hint

Use SET start 7 and SET end 17 to store the positions.

3
CORE LOGIC: Extract substring with GETRANGE
Use the GETRANGE command with the key profile:1001 and the variables start and end to extract the substring from position 7 to 17.
Redis
Hint

Use GETRANGE profile:1001 7 17 to get the substring.

4
COMPLETION: Update substring with SETRANGE
Use the SETRANGE command to replace the substring starting at position 18 in profile:1001 with the exact string "fun and easy!".
Redis
Hint

Use SETRANGE profile:1001 18 "fun and easy!" to update the string.

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