Redis é uma base de dados de valores chave de código aberto. Dados em uma base de dados de valores chave tem duas partes: a chave e o valor. Como a Redis pode aceitar chaves em uma grande variedade de formatos, as operações podem ser executadas no servidor e reduzir a carga de trabalho do cliente. Redis é frequentemente usado para gerenciamento de cache e aceleração de aplicações web.
Redis é escrito em ANSI C e roda em sistemas POSIX como Linux, Mac OS X e Solaris. Ele pode ser acessado por aplicações através de sua biblioteca API cliente. Redis, que tem um conjunto relativamente rico de tipos de dados quando comparado a muitos armazéns de dados de valor chave, mantém sua base de dados inteiramente na memória, usando o disco apenas para persistência.
Redis suporta estas estruturas de dados:
Binary-safe strings - listas ou coleções de elementos string são ordenadas de acordo com a ordem de inserção.
Conjuntos e conjuntos ordenados - colecções de elementos de string únicos e não ordenados e colecções em que cada elemento de string está associado a um valor de número flutuante chamado score.
Hashes - mapas compostos de campos associados a valores. Tanto o campo quanto o valor são strings.
Arrays de bits (bitmaps) - usam comandos especiais para lidar com valores de strings como um array de bits.
HyperLogLogs - uma estrutura de dados que pode estimar o número de itens em um conjunto.
Geospatial indexes - dados que são armazenados como pares de coordenadas.
Redis 3.0 introduz o Redis Cluster, uma implementação distribuída do Redis que incluiu a fragmentação automática de dados e a tolerância a falhas. Embora não haja suporte oficial para compilações do Windows, a Microsoft mantém uma porta Win-64 do Redis no GitHub.
Ver também: in-memory database, NoSQL