Using HINCRBY to Update Numeric Fields in Redis Hashes
📖 Scenario: You are managing a simple Redis database for a small online store. You want to keep track of the number of items sold for each product using Redis hashes.
🎯 Goal: Build a Redis hash to store product sales counts and use HINCRBY to update these counts as sales happen.
📋 What You'll Learn
Create a Redis hash called product_sales with initial sales counts for three products.
Set a variable increment to the number 5 to represent new sales.
Use HINCRBY to increase the sales count of the product apple by the value of increment.
Add a final command to retrieve all fields and values from the product_sales hash.
💡 Why This Matters
🌍 Real World
Tracking product sales counts in an online store using Redis hashes is a common real-world use case.
💼 Career
Understanding how to update numeric fields efficiently in Redis is important for backend developers working with caching and real-time data.
Progress0 / 4 steps
1
Create the initial Redis hash with product sales counts
Create a Redis hash called product_sales with these exact fields and values: apple 10, banana 20, and orange 15 using the HMSET command.
Redis
Hint
Use HMSET followed by the hash name and pairs of field and value.
2
Set the increment value for sales
Set a Redis string variable called increment to the number 5 using the SET command.
Redis
Hint
Use SET increment 5 to store the increment value.
3
Increase the sales count for apple using HINCRBY
Use the HINCRBY command to increase the apple field in the product_sales hash by the value stored in increment. Since HINCRBY requires a number, first retrieve the value of increment and then use it in HINCRBY.
Redis
Hint
Since Redis commands are atomic, you can directly use the number 5 in HINCRBY here.
4
Retrieve all product sales counts
Use the HGETALL command to get all fields and values from the product_sales hash.
Redis
Hint
Use HGETALL product_sales to see all product sales counts.
Practice
(1/5)
1. What does the Redis command HINCRBY do when used on a hash field?
easy
A. It increments or decrements the numeric value stored in the field by a given amount.
B. It deletes the field from the hash.
C. It sets the field to a new string value.
D. It returns the current value of the field without changing it.
Solution
Step 1: Understand the purpose of HINCRBY
HINCRBY is designed to change numeric values inside a hash by adding or subtracting a specified number.
Step 2: Identify the effect on the hash field
It modifies the existing numeric value by the given increment or decrement amount.
Final Answer:
It increments or decrements the numeric value stored in the field by a given amount. -> Option A
Quick Check:
HINCRBY changes numbers inside a hash = B [OK]
Hint: HINCRBY always changes numbers by adding or subtracting [OK]
Common Mistakes:
Thinking HINCRBY deletes or resets fields
Using HINCRBY on non-numeric fields without error
Confusing HINCRBY with commands that just read values
2. Which of the following is the correct syntax to increment the field score by 5 in a Redis hash named player1?
easy
A. HINCRBY 5 player1 score
B. HINCRBY score player1 5
C. HINCRBY player1 5 score
D. HINCRBY player1 score 5
Solution
Step 1: Recall the correct order of HINCRBY arguments
The syntax is: HINCRBY key field increment.
Step 2: Match the syntax to the given options
HINCRBY player1 score 5 follows the correct order: key = player1, field = score, increment = 5.
Final Answer:
HINCRBY player1 score 5 -> Option D
Quick Check:
HINCRBY key field increment = A [OK]
Hint: Remember: HINCRBY key field increment [OK]
Common Mistakes:
Swapping field and key positions
Placing increment before field or key
Using wrong argument order causing errors
3. Given the following Redis commands executed in order: HSET player1 score 10 HINCRBY player1 score 7 HINCRBY player1 score -3 What is the final value of score in player1?
Hint: Add increments step-by-step to find final value [OK]
Common Mistakes:
Ignoring negative increments
Adding increments incorrectly
Assuming initial value is zero
4. You run the command HINCRBY player1 level 1 but get an error. The field level currently holds the string value beginner. What is the cause of the error?
medium
A. The increment value must be a string, not a number.
B. HINCRBY cannot increment a field with a non-numeric value.
C. The key player1 does not exist.
D. HINCRBY requires the field to be empty before incrementing.
Solution
Step 1: Check the field value type
The field level contains a non-numeric string "beginner".
Step 2: Understand HINCRBY requirements
HINCRBY only works on fields with numeric values; it cannot increment strings.
Final Answer:
HINCRBY cannot increment a field with a non-numeric value. -> Option B
Quick Check:
Non-numeric field causes HINCRBY error = C [OK]
Hint: HINCRBY only works on numeric fields, not strings [OK]
Common Mistakes:
Assuming HINCRBY creates or converts strings automatically
Thinking key absence causes this error
Believing increment must be string type
5. You have a Redis hash inventory with fields apples = 10 and oranges = 5. You want to add 3 apples and subtract 2 oranges using HINCRBY commands. Which sequence of commands correctly updates the inventory?
hard
A. HINCRBY inventory apples 3 HINCRBY inventory oranges -2
B. HINCRBY inventory apples -3 HINCRBY inventory oranges 2
C. HINCRBY inventory apples 3 HINCRBY inventory oranges 2
D. HINCRBY inventory apples -3 HINCRBY inventory oranges -2
Solution
Step 1: Identify the required changes
We want to add 3 to apples and subtract 2 from oranges.
Step 2: Match increments with commands
Adding 3 means increment by 3; subtracting 2 means increment by -2.
Step 3: Verify command sequence
HINCRBY inventory apples 3 HINCRBY inventory oranges -2 correctly uses HINCRBY inventory apples 3 and HINCRBY inventory oranges -2.
Final Answer:
HINCRBY inventory apples 3 HINCRBY inventory oranges -2 -> Option A
Quick Check:
Add positive, subtract negative with HINCRBY = A [OK]
Hint: Use positive to add, negative to subtract with HINCRBY [OK]
Common Mistakes:
Using negative to add or positive to subtract incorrectly
Mixing up fields and increments
Assuming HINCRBY can subtract by positive number
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.