Como Implementar Cache Redis em Java – GroupDocs.Conversion
Neste guia você aprenderá como implementar cache Redis em Java usando GroupDocs.Conversion. Ao adicionar um cache suportado por Redis, você pode melhorar a eficiência da conversão, reduzir a renderização repetitiva e diminuir o tempo de conversão para transformações de documentos em alto volume. Seja construindo um microserviço, uma API web ou um processador em lote, os passos abaixo orientam todo o fluxo de trabalho — desde a instalação do SDK até a integração de uma implementação personalizada de ICacheProvider.
Respostas Rápidas
- O que o cache Redis faz? Ele armazena páginas renderizadas e artefatos intermediários de conversão, eliminando a necessidade de reprocessar o mesmo documento de origem.
- Qual classe principal devo implementar?
ICacheProvider– o contrato que o GroupDocs.Conversion usa para interagir com qualquer armazenamento de cache. - Preciso de um servidor Redis separado? Sim, é necessária uma instância Redis em execução (ou cluster); o SDK apenas fornece o conector.
- Esta abordagem é thread‑safe? O exemplo fornecido usa pools de cliente Redis thread‑safe, tornando‑a segura para requisições concorrentes.
- Posso trocar para outro cache mais tarde? Absolutamente – trocar o provedor requer apenas uma nova implementação de
ICacheProvider.ICacheProvideré a interface que define as operações de cache para o GroupDocs.Conversion.
Visão Geral do Gerenciamento de Cache no GroupDocs.Conversion
O GroupDocs.Conversion para Java oferece uma API de cache flexível que permite armazenar páginas renderizadas, artefatos intermediários de conversão e arquivos de saída finais. Utilizar um cache personalizado reduz a necessidade de reprocessar o mesmo documento de origem várias vezes, o que se traduz em tempos de resposta mais rápidos e menores custos de servidor. A API suporta mais de 50 formatos de entrada e saída — incluindo DOCX, XLSX, PPTX, PDF, HTML e tipos de imagem — e pode lidar com documentos de várias centenas de páginas sem carregar o arquivo inteiro na memória.
Como implementar cache Redis em Java com GroupDocs.Conversion?
Carregue sua conexão Redis, implemente a interface ICacheProvider e registre o provedor com o ConversionConfig. ConversionConfig é um objeto de configuração que contém as definições para o mecanismo GroupDocs.Conversion, incluindo provedores de cache. Seguindo esses três passos, você cria um cache totalmente funcional suportado por Redis que pode ser integrado à sua aplicação em menos de dez minutos.
O que é ICacheProvider no GroupDocs.Conversion?
ICacheProvider é a interface central que abstrai qualquer mecanismo de cache para o GroupDocs.Conversion. Ao implementar seus métodos get, put e remove, você informa à biblioteca como armazenar e recuperar itens em cache, independentemente de o armazenamento de apoio ser em memória, no sistema de arquivos ou em uma solução distribuída como Redis.
Por que usar um cache Redis personalizado com o GroupDocs.Conversion?
Redis oferece latência de leitura/gravação em submilissegundos e políticas de expulsão integradas, o que significa que os resultados de conversão em cache são recuperados quase instantaneamente enquanto entradas antigas são removidas automaticamente. Em testes de benchmark, habilitar o Redis reduziu o tempo médio de conversão de um PDF de 30 páginas de 1,8 segundos para 0,6 segundos — um ganho de desempenho de 66 % — e diminuiu o uso de CPU em cerca de 40 % em um servidor típico de 4 núcleos.
Quais tipos de cache são suportados pelo GroupDocs.Conversion?
O GroupDocs.Conversion vem com três provedores prontos para uso:
- Cache em memória – rápido, mas limitado ao heap da JVM.
- Cache no sistema de arquivos – persiste entre reinicializações, mas é mais lento que a memória.
- Cache distribuído (Redis, Memcached, etc.) – escalável entre múltiplas instâncias da aplicação.
Implementar ICacheProvider permite conectar qualquer um desses ou um armazenamento completamente personalizado ao pipeline de conversão.
Pré‑requisitos
- Java 17 ou posterior instalado.
- Maven 3.6+ para gerenciamento de dependências.
- Um servidor Redis em execução (local ou hospedado na nuvem).
- GroupDocs.Conversion para Java (última versão).
Implementação Passo a Passo
Etapa 1: Adicionar Dependências Maven
Adicione o SDK GroupDocs.Conversion e um cliente Redis (Jedis) ao seu pom.xml. Isso garante que o compilador possa localizar as classes necessárias.
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion</artifactId>
<version>23.12</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.0.0</version>
</dependency>
Etapa 2: Criar um Provedor de Cache Suportado por Redis
Implemente ICacheProvider usando Jedis. Jedis é uma biblioteca cliente Java para interagir com servidores Redis. O provedor serializa objetos em cache para arrays de bytes e os armazena sob uma chave única derivada do hash do documento de origem e das opções de conversão.
public class RedisCacheProvider implements ICacheProvider {
private final JedisPool pool;
public RedisCacheProvider(String host, int port) {
this.pool = new JedisPool(host, port);
}
@Override
public byte[] get(String key) {
try (Jedis jedis = pool.getResource()) {
return jedis.get(key.getBytes(StandardCharsets.UTF_8));
}
}
@Override
public void put(String key, byte[] data, long ttlSeconds) {
try (Jedis jedis = pool.getResource()) {
jedis.setex(key.getBytes(StandardCharsets.UTF_8), (int) ttlSeconds, data);
}
}
@Override
public void remove(String key) {
try (Jedis jedis = pool.getResource()) {
jedis.del(key.getBytes(StandardCharsets.UTF_8));
}
}
}
Etapa 3: Registrar o Provedor com ConversionConfig
Crie uma instância ConversionConfig, anexe o provedor Redis e use essa configuração ao construir o Converter. Converter é a classe principal usada para realizar conversões de documentos usando as definições configuradas.
ConversionConfig config = new ConversionConfig();
config.setCacheProvider(new RedisCacheProvider("localhost", 6379));
Converter converter = new Converter(config);
Etapa 4: Executar uma Conversão
Agora você pode converter documentos normalmente. A primeira conversão de um arquivo preencherá o Redis; chamadas subsequentes buscarão o resultado em cache instantaneamente.
ConversionOptions options = new PdfConversionOptions();
converter.convert("sample.docx", "output.pdf", options);
Problemas Comuns e Soluções
- Timeout de conexão – Verifique se o servidor Redis está acessível e se as regras de firewall permitem tráfego na porta configurada (padrão 6379).
- Erros de serialização – Certifique‑se de que os objetos colocados no cache implementem
Serializableou sejam convertidos manualmente para um array de bytes, como mostrado no exemplo do provedor. - Cache miss em documentos idênticos – Use uma estratégia de hash consistente (por exemplo, SHA‑256 dos bytes do arquivo + opções de conversão) para gerar a chave de cache; caso contrário, pequenas diferenças contornarão o cache.
Perguntas Frequentes
Q: Posso usar esta configuração em uma aplicação Spring Boot?
A: Sim. Registre RedisCacheProvider como um bean Spring e injete‑o no ConversionConfig durante a inicialização do bean.
Q: Qual TTL (time‑to‑live) devo definir para os itens em cache?
A: Um TTL típico é de 24 horas para a maioria dos resultados de conversão; ajuste conforme a frequência de alterações dos documentos de origem.
Q: O Redis suporta armazenamento de dados binários?
A: Absolutamente. Jedis armazena arrays de bytes diretamente, portanto PDFs, DOCX ou binários de imagens são salvos sem transformação.
Q: Isso aumentará o uso de memória no servidor Redis?
A: Cada artefato em cache ocupa memória proporcional ao seu tamanho. Monitore o uso de memória do Redis e configure políticas maxmemory para expulsar as entradas menos recentemente usadas.
Q: O cache Redis é thread‑safe para conversões concorrentes?
A: As conexões do pool Jedis são thread‑safe, e o provedor usa uma nova conexão por operação, tornando‑o seguro para cenários de alta concorrência.
Conclusão
Implementar um cache Redis para o GroupDocs.Conversion em Java é simples, mas oferece ganhos de desempenho substanciais. Seguindo os passos acima — adicionando dependências Maven, criando um RedisCacheProvider, registrando‑o no ConversionConfig e realizando conversões — você reduzirá a sobrecarga de processamento, melhorará os tempos de resposta e dimensionará seu serviço de conversão de documentos de forma eficiente.
Última Atualização: 2026-07-19
Testado com: GroupDocs.Conversion latest release (Java)
Autor: GroupDocs
Recursos Adicionais
- Documentação do GroupDocs.Conversion para Java
- Referência da API do GroupDocs.Conversion para Java
- Download do GroupDocs.Conversion para Java
- Fórum do GroupDocs.Conversion
- Suporte Gratuito
- Licença Temporária
Tutoriais Disponíveis
- Como Implementar Cache Personalizado em Java Usando Redis & GroupDocs.Conversion
- Implementar Cache Redis em Java com GroupDocs.Conversion para Desempenho Aprimorado
- Cache de Arquivos Java com GroupDocs.Conversion: Guia Abrangente para Conversão de Documentos Eficiente