Redis is a key-value store that can be used as a database, cache, or message broker. It supports string, hash, list, set and sorted set data structures. Redis is written in C and works on most POSIX systems. It is single-threaded but can scale horizontally by running multiple Redis instances. Redis can persist data to disk and support master-slave replication. It can be scaled out using sentinel for automatic failover, Twemproxy for data sharding, or Redis Cluster for sharding with automatic failover.