Redis is an in-memory key-value store that can be used as a data structure server. It supports basic data structures like strings, lists, sets, sorted sets and hashes. Data can be persisted to disk using snapshots and append-only files with rewriting. It supports transactions using MULTI and EXEC commands and pipelining to improve performance. Publish/subscribe messaging and master-slave replication with consistent hashing are also features. Redis has client libraries for many languages and the Hiredis C library provides an easy to use API. Redis can be applied to use cases like caching, queues and more.