Databases 14 min read

From Zero to Redis Mastery: Why and How to Use Its Core Features

This article walks through Redis from a basic overview to advanced features such as persistence, Sentinel, clustering, data types, transactions, Lua scripting, pipelining, and distributed locks, illustrating each concept with practical examples and explaining when and why to use them in real‑world applications.

Architecture Talk
Architecture Talk
Architecture Talk
From Zero to Redis Mastery: Why and How to Use Its Core Features

1 From Zero

Initially we had a hot‑news API that took about two seconds per request. The simplest improvement was to add an HTTP cache‑control header, but this caused stale data and did not solve the underlying latency.

2 In‑Memory Cache

We then cached the SQL query result in the API server’s memory for one minute, reducing most requests to near‑instant responses, though the server’s memory soon became saturated.

3 Server‑Side Redis

To offload the cache, we introduced a dedicated Redis server, relieving the API servers of memory pressure.

3.1 Persistence

Redis can write its in‑memory data to disk, allowing recovery after a crash and mitigating cache‑snowball effects.

3.2 Sentinel and Replication

Sentinel monitors multiple Redis instances, provides alerts, and performs automatic failover, while replication keeps backup copies synchronized for high availability.

3.3 Cluster

Redis Cluster distributes data across multiple nodes using 16,384 hash slots, enabling horizontal scaling and automatic redirection of client requests.

4 Client‑Side Redis

4.1 Data Types

string – binary‑safe up to 512 MB

list – ordered collection of strings

set – unordered unique strings

sorted set – ordered by score

hash – field‑value map

bitmap – bit‑level operations

hyperloglog – probabilistic cardinality estimator

4.2 Transactions

Redis supports atomic execution of multiple commands, ensuring all succeed or all fail.

4.3 Lua Scripts

Lua scripts run atomically on the server, allowing complex logic such as extending a key’s TTL while fetching it.

4.4 Pipelining

Pipelining batches multiple commands over a single TCP connection to reduce network overhead, though it does not guarantee atomicity.

4.5 Distributed Lock

The recommended Redlock algorithm uses a string key with a random value, setting an expiration, and releases the lock via a Lua script:

SET resource_name my_random_value NX PX 30000

if redis.call("get",KEYS[1]) == ARGV[1] then
    return redis.call("del",KEYS[1])
else
    return 0
end

5 Summary

The article abstracts Redis’s capabilities—persistence, high availability, clustering, rich data types, transactions, scripting, pipelining, and distributed locking—explaining the problems each solves and guiding readers to choose appropriate features for specific scenarios.

6 References

Redis documentation: https://github.com/antirez/redis-doc

Redis introduction: https://redis.io/topics/introduction

Persistence: https://redis.io/topics/persistence

Pub/Sub: https://redis.io/topics/pubsub

Sentinel: https://redis.io/topics/sentinel

Replication: https://redis.io/topics/replication

Cluster tutorial: https://redis.io/topics/cluster-tutorial

Transactions: https://redis.io/topics/transactions

Data types: https://redis.io/topics/data-types-intro

Distributed lock: https://redis.io/topics/distlock

Pipelining: https://redis.io/topics/pipelining

Lua scripting: https://redis.io/commands/eval

distributed-systemshigh availabilityRedisPersistencedata types
Architecture Talk
Written by

Architecture Talk

Rooted in the "Dao" of architecture, we provide pragmatic, implementation‑focused architecture content.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.