# Terms to know

**The Redis server** is the heart of the Redis system, handling all data storage, processing, and management tasks.

<figure><img src="https://1471795080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrtXPLjVTxuTGIysjCx89%2Fuploads%2FwtofAXOs2B18CMuDM9mk%2Fredis_cluster.png?alt=media&#x26;token=9c97e646-4d36-4db6-961d-d6014753de37" alt=""><figcaption></figcaption></figure>

* A simple database, i.e., a single primary shard.
* A highly available (HA) database, i.e., a pair of primary and replica shards.
* A clustered database contains multiple primary shards, each managing a subset of the dataset.
* An HA clustered database, i.e., multiple pairs of primary/replica shards.

***

**Shard**: Splitting data across multiple Redis instances to distribute load and data volume. It's like breaking a big dataset into smaller, manageable pieces.

**Cluster**: A group of Redis nodes that share data. Provides a way to run Redis where data is automatically sharded across nodes.

**Replication** is copying data from one Redis server to another for redundancy and scalability. The primary server's data is replicated to one or more secondary (replica) servers.

**Multi-Model Database**

Redis-Core - Key-Value Store\
Extend with Redis Modules\
Redis Search - Elastic Search\
RedisGraph - Graph Database\
RedisJSON - Document Database\
RedisTimeSeries - TimeSeries Database

**Transactions**: Grouping commands to be executed as a single isolated operation, ensuring atomicity.

**Pipeline**: Bundling multiple commands to reduce request/response latency. Commands are queued and executed at once.

**Transactions**: Grouping commands to be executed as a single isolated operation, ensuring atomicity.

Remember: \[A]CID in MySQL? It's either all or nothing. For example, Transfer money from A to B.

**Persistence**: Saving data to disk for durability. Redis offers RDB (snapshotting) and AOF (logging every write operation).

**RDB (Redis Database)**

RDB periodically creates point-in-time snapshots of your dataset at specified intervals.\
It is generally faster for larger datasets because it doesn't write every disk change, reducing I/O overhead.

**AOF (Append Only File)**

**Durability**: Records every write operation received by the server. You can configure the fsync policy to balance between durability and performance.

**Data Loss Risk**: Less risk of data loss compared to RDB. It can be configured to append each operation to the AOF file as it happens or every second.

**Recovery Speed**: Slower restarts compared to RDB because Redis replays the entire AOF to rebuild the state.
