Supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps and geospatial indexes with radius queries. Redis' high availability and data durability are provided by replication and snapshotting features. It stores all the data in the RAM as key-value pairs and is used as an object caching solution. This approach provides performance that is much higher than the performance of relational DBMSs.
Core Capabilities

In-memory Data Structures
Data structure server, with support for strings, hashes, lists, sets, sorted sets, streams, and more

Clustering and Scalability
Horizontal scalability with hash-based sharding, scaling to millions of nodes with automatic re-partitioning when growing the cluster

High Availability and Durability
Replication with automatic failover for both standalone and clustered deployments

Programmability
Server-side scripting with Lua and server-side stored procedures with Redis Functions

Extensibility
A module API for building custom extensions to Redis in C, C++, and Rust.

Persistence
Keeps the dataset in memory for fast access, but can also persist all writes to permanent storage to survive reboots and system failures
Use Cases

Real-time Data Store
Redis versatile in-memory data structures enable building data infrastructure for real-time applications that require low latency and high-throughput

Caching & Session Storage
Redis' speed makes it ideal for caching database queries, complex computations, API calls, and session state

Streaming & Messaging
The stream data type enables high-rate data ingestion, messaging, event sourcing, and notifications