0
0
Redisquery~30 mins

Why Lua scripts enable atomicity in Redis - See It in Action

Choose your learning style9 modes available
Understanding Atomicity with Lua Scripts in Redis
📖 Scenario: You are managing a Redis database for a simple online store. You want to update the stock quantity and sales count together without any other operations interrupting. This ensures your data stays accurate and consistent.
🎯 Goal: Build a Lua script in Redis that updates stock and sales atomically, so both changes happen together or not at all.
📋 What You'll Learn
Create a Lua script that decreases the stock count by 1
Increase the sales count by 1 in the same script
Ensure the script runs atomically in Redis
Use Redis commands inside the Lua script to update keys
💡 Why This Matters
🌍 Real World
Online stores and inventory systems need to update stock and sales counts together to avoid errors from simultaneous updates.
💼 Career
Understanding Lua scripting in Redis is valuable for backend developers and database administrators to ensure data consistency and atomic operations.
Progress0 / 4 steps
1
Setup Redis keys for stock and sales
Create two Redis keys called stock and sales with initial values 100 and 0 respectively using Redis commands.
Redis
Need a hint?

Use the SET command to create keys with initial values.

2
Write a Lua script to update stock and sales
Write a Lua script that decreases the stock key by 1 and increases the sales key by 1 using Redis commands redis.call('DECR', 'stock') and redis.call('INCR', 'sales').
Redis
Need a hint?

Use redis.call inside the Lua script to run Redis commands atomically.

3
Run the Lua script atomically in Redis
Use the Redis EVAL command to run the Lua script atomically. The script should be passed as a string to EVAL with 0 keys argument count.
Redis
Need a hint?

Use EVAL to execute the Lua script atomically in Redis.

4
Complete the Lua script with return values
Modify the Lua script to return the updated stock and sales values as a table at the end using return {stock, sales}.
Redis
Need a hint?

Return the updated values as a table to see the result of the atomic operation.