Redis can reduce database load by 90% and cut response times to milliseconds.
Cache-Aside Pattern
def get_user(user_id):
cached = r.get(f"user:{user_id}")
if cached:
return json.loads(cached)
user = db.query("SELECT * FROM users WHERE id = %s", user_id)
r.setex(f"user:{user_id}", 3600, json.dumps(user))
return user
Write-Through
def update_user(user_id, data):
db.execute("UPDATE users SET name=%s WHERE id=%s", data["name"], user_id)
r.setex(f"user:{user_id}", 3600, json.dumps(data))
Cache Invalidation
r.setex("product:123", 300, data)
def on_product_update(product_id):
r.delete(f"product:{product_id}")
Session Storage
r.hset(f"session:{sid}", mapping={"user_id": 123, "role": "admin"})
r.expire(f"session:{sid}", 86400)
Learn more in our Database eBook collection.