Redis ou Ehcache?

mais adequado para o seguinte ambiente:

    A persistência não é uma compulsão.
  1. são necessários vários servidores (com Ehcache é necessária alguma sincronização de 'cache').

  2. = = ligações externas = =
  3. base de dados relativamente pequena (muito menos necessidades de memória).
Vou derramar o que está na minha cabeça. Posso estar enganado em relação a isto.

Eu sei que o Redis precisa de um servidor separado (?) e Ehcache fornece informações locais cache então deve ser mais rápido, mas irá replicar cache através de servidores (?). Atualizar todos os caches após alguma atualização em um é possível com Ehcache.

A minha pergunta é: qual será melhor para o ambiente que mencionei?
Que desempenho será melhor ou o que são cenários quando um pode superar outro?

Obrigado antecipadamente.

Author: informatik01, 2015-10-14

2 answers

Pode pensar que o Redis é uma estrutura de dados partilhada, enquanto o Ehcache é um Bloco de memóriaa armazenar objectos de dados serializados. Esta é a principal diferença.

Redis como um estrutura de dados compartilhados significa que você pode colocar um pouco de predefinidos estrutura de dados (como String, Lista, Conjunto etc) em um idioma e recuperá-la em outro idioma. Isto é útil se o seu projecto formultilingue , por exemplo: do lado da infra-estrutura, e PHP do lado da frente. Você pode usar o Redis para um cache compartilhado. Mas ele só pode armazenar estrutura de dados predefinida, você não pode inserir qualquer objeto Java que você deseja.

Se o seu projecto é apenas Java, ou seja, não multilingue , O Ehcache é uma solução conveniente.

 45
Author: smallufo, 2017-04-10 07:51:20

Você vai encontrar problemas com a escala EhCache e precisa de recursos para geri-lo durante o failover e etc. redirigir os benefícios sobre EhCache:

    Usa o protocolo de mexericos para a descoberta e sincronização de nós.
  1. Disponibilidade de serviços totalmente geridos como AWS ElastiCache, Azure Redis Cache. Tais serviços oferecem automação completa, suporte e gestão da Redis, para que os desenvolvedores possam se concentrar em suas aplicações e não manter as bases de dados deles.
  2. corrigir o manuseamento de grande quantidade de memória (todos sabemos que o Redis pode gerir com centenas de gigabytes de memória RAM numa única máquina). Não tem problemas com a recolha de lixo como Java.

E finalmente a existência de Java Developer friendly Redis client - Redisson .
Redisson fornece muitos objetos amigáveis Java em cima do Redis , tipo:

  • Conjunto
  • ConcurrentMap
  • Lista
  • fila
  • Deque
  • BlockingQueue
  • BlockingDeque
  • ReadWriteLock
  • semáforo
  • Bloqueio
  • AtomicLong
  • CountDownLatch
  • [[6]}Publicar / Subscrever
  • ExecutorService
  • e muitos mais...

O Redisson suporta cache local para a estrutura do mapa que o frio lhe dá 45x Aumento de desempenho para leitura operacao.

([1]} Aqui está o artigo descrevendo a experiência da Sociedade de Capital Pessoal de transição de EhCache para Redis
 4
Author: Nikita Koksharov, 2019-06-14 10:57:15