Databases 14 min read

Master Redis: Core Data Types, Commands, and Advanced Features Explained

This article introduces Redis as an open‑source, in‑memory data‑structure store, explains its role as a NoSQL database, details its five fundamental data types, common commands, expiration handling, pipelines, and transactions, and shows how it fits into modern scaling architectures.

Efficient Ops
Efficient Ops
Efficient Ops
Master Redis: Core Data Types, Commands, and Advanced Features Explained

What Is Redis

Redis is an open‑source, in‑memory data‑structure storage system that can serve as a database, cache, and message broker. It supports strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, and geospatial indexes.

Redis also provides replication, Lua scripting, LRU eviction, transactions, and various persistence levels, and offers high availability through Sentinel and automatic sharding with Cluster.

What Is NoSQL

Redis is a non‑relational NoSQL database. NoSQL emerged to address the limitations of single‑machine databases as traffic grows.

The Era of Single‑Machine Databases

When a website has low traffic, a single database can handle all requests.

Cache + Sharding

As traffic increases, a single database becomes insufficient. Adding a cache layer and splitting the database into clusters, optimizing its structure, and separating reads from writes improves performance.

In this context, caching is one use case of NoSQL; Redis, for example, can also act as a simple message queue, session store, counter, leaderboard, or friend‑relationship manager.

Redis General Commands

Below are common Redis commands independent of data type.

Key and Value Operations

Redis stores data as key‑value pairs, each key being unique.

For demonstration, string‑related commands are used.

keys pattern – returns all keys matching the pattern (O(n), usually replaced by scan in production).

dbsize – returns the number of keys stored.

exists key – checks if a key exists.

del key – deletes the specified key.

type key – returns the data type of the key.

rename key newkey – renames a key.

Expiration

Because many Redis values are used as cache, they often need an expiration time.

expire key seconds – sets a timeout on a key.

ttl key – shows remaining time; -1 means persistent, -2 means expired or non‑existent.

Redis Five Basic Data Types

Redis has five fundamental data structures: strings, hashes, lists, sets, and sorted sets.

String

set key value – set a value.

get key – get a value.

mset key1 value1 key2 value2 – atomic batch set.

mget key1 key2 – atomic batch get.

incr key – increment.

decr key – decrement.

incrby key value – increment by a number.

decrby key value – decrement by a number.

incrbyfloat key floatvalue – increment by a floating‑point number.

setnx key value – set only if key does not exist (used for distributed locks).

set key value xx – set only if key exists (update).

Hash

A hash can be seen as a small Redis, similar to a Java HashMap, implemented with an array of linked lists.

During rehashing, both old and new hash tables coexist until migration completes.

hset key field value – set a field.

hsetnx key field value – set if field does not exist.

hmset key field1 value1 … – batch set.

hget key field – get a field.

hmget key field1 field2 … – batch get.

hgetall key – get all fields.

hdel key field – delete a field.

hexists key field – check existence.

hlen key – number of fields.

hvals key – all values.

hkeys key – all fields.

hincrby key field incr – increment a numeric field.

hincrbyfloat key field incr – increment a floating‑point field.

List

Redis lists are implemented as doubly linked lists; insertion and deletion are fast, while index lookup is slower.

lpush key item1 item2 … – push to the left (stack).

rpush key item1 item2 … – push to the right.

lpop key – pop from the left.

rpop key – pop from the right.

lindex key index – get element by index (O(n)).

lrange key start end – get a range of elements (O(n)).

linsert key before|after pivot value – insert relative to an element.

lrem key count value – remove elements matching value.

ltrim key start end – keep only a range.

lset key index value – set element at index.

blpop key timeout – block until element available (0 = forever).

brpop key timeout – same for right side, useful for producer‑consumer.

Using left‑push/right‑pop implements a queue; left‑push/left‑pop or right‑push/right‑pop implements a stack.

Set

Redis sets behave like Java HashSet: unordered, no duplicate elements, useful for deduplication and set operations.

sadd key value – add element.

srem key value – remove element.

sismember key value – check membership.

srandmember key count – get random elements without removal.

spop key count – pop random elements (removes them).

smembers key – all members (O(n)).

scard key – cardinality.

sinter set1 set2 … – intersection.

sdiff set1 set2 … – difference.

sunion set1 set2 … – union.

Sorted Set (zset)

Sorted sets store members with a score, enabling ordered collections such as leaderboards.

They are implemented with skip lists, which provide fast range queries while maintaining order.

Redis Transactions and Pipelines

Pipeline

Pipelines batch multiple commands into a single network round‑trip, reducing latency. Commands in a pipeline are not atomic; they may be interleaved with other clients' commands.

Transactions

Redis transactions guarantee atomicity and isolation (A and I of ACID). Persistence depends on RDB/AOF configuration, but Redis does not provide consistency guarantees or rollback.

multi – start transaction.

exec – execute transaction.

discard – cancel queued commands.

watch key – monitor a key for changes before committing.

unwatch – stop monitoring.

Common Redis Commands Summary

For a concise reference, see the accompanying command summary image.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

rediscachingData StructuresdatabasesTransactionsNoSQLkey-value store
Efficient Ops
Written by

Efficient Ops

This public account is maintained by Xiaotianguo and friends, regularly publishing widely-read original technical articles. We focus on operations transformation and accompany you throughout your operations career, growing together happily.

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.