Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Técnicas de almacenamiento en caché más utilizadas

Técnicas de almacenamiento en caché más utilizadas

Capítulo 1 Tecnologías de almacenamiento en caché de uso común

1. Dos cachés comunes

Caché local: sin necesidad de serialización, rápido, la cantidad de cachés es la misma que El tamaño está limitado por la memoria local

Caché distribuida: requiere serialización y es más lento que el caché local, pero teóricamente la cantidad y el tamaño de los cachés son ilimitados (porque la máquina de caché puede continuar expandiéndose)

p>

2. Caché local

Caché de guayaba de Google: el caché local más útil en este momento

Ehcache: un caché integrado por Spring de forma predeterminada, implementado con el caché subyacente. de spring cache Es muy conveniente operar el caché en forma de clase, pero carece de flexibilidad. Si desea usarlo de manera flexible, aún debe usar Ehcache solo

Oscache: el caché de página más clásico y simple.

3. Distribución

Memcached: la configuración estándar de caché distribuida

Redis: una nueva generación de caché distribuida, con tendencia a sustituir a memcached

3.1, memcached

p>

Algoritmo hash consistente clásico

El modelo de memoria basado en losa puede prevenir eficazmente la generación de fragmentación de la memoria (pero al mismo tiempo, el inicio los parámetros deben estimarse bien; de lo contrario, se desperdiciará mucha memoria)

Las máquinas en el clúster no se comunican entre sí (en comparación con cachés como Jboss cache, que se comunican entre sí entre máquinas en el clúster, es más rápido<--porque hay menos gastos generales de actualización sincrónica del caché y es más adecuado para la distribución a gran escala utilizada en el sistema)

Fácil de usar (esto se compara a Redis al construir el cliente, aunque el uso de redis no es difícil)

Muy dedicado (Especializado en almacenamiento en caché, esto también se compara con Redis)

3.2, Redis

Puede almacenar estructuras de datos complejas (5 tipos)

cadenas --> Es decir, clave-valor simple es la única forma que Memcached puede almacenar. Los siguientes cuatro son los cuatro formatos que Memcached no puede almacenar. almacenar directamente (por supuesto, en teoría, primero puede colocar las cosas en algunas de las siguientes estructuras de datos, encapsularlas en un objeto y luego almacenarlas en Memcached. Sin embargo, no se recomienda almacenar objetos grandes en Memcached porque el almacenamiento máximo La capacidad de un solo valor en Memcached es 1M. Incluso si se usa el algoritmo de compresión, puede que no sea suficiente. Incluso si es suficiente, la eficiencia del acceso puede no ser alta y el valor máximo de redis es 1G. p>

hashs-->ver como hashTable

listas-->ver como LinkedList

conjuntos-->ver como hashSet, de hecho, la capa inferior es una hashTable

conjuntos ordenados-->la capa inferior es una skipList

Hay dos formas de conservar los datos almacenados en caché

RDB

AOF

Programación de eventos

Publicar y suscribirse, etc.

4. Caché integrado

Se refiere específicamente al caché de Spring que hereda ehcache. la clase de implementación de caché. También podemos usar guava cache, memcached y el propio redis para implementar la capa inferior de spring cache. Por supuesto, Spring Cache puede almacenar el caché localmente o en una máquina remota según la clase de implementación.

5. Almacenamiento en caché de páginas

Cuando usemos jsp, usaremos Oscache para almacenar en caché algunas páginas complejas. Es muy simple de usar, solo unas pocas etiquetas, pero hoy en día la mayoría de las empresas; utilizará motores de plantillas de velocidad y freemaker en la recepción. La velocidad en sí ya es muy rápida y el caché de página rara vez se usa.

Resumen:

En la producción real, generalmente usamos guava cache como caché local + redis como caché distribuido + spring cache como caché integrado (la capa inferior se implementa usando redis) Formulario

Guava cache se usa para obtener datos almacenados en caché más rápido y la cantidad de datos almacenados en caché no es grande

El caché integrado de Spring cache es para un uso simple y conveniente del caché (para El método de anotación es suficiente ), usar redis como clase de implementación es almacenar más datos en la máquina

El caché de Redis se usa solo para compensar la inflexibilidad del caché integrado de Spring Cache

Personalmente, Si necesita usar caché distribuido, primero debe usar Redis, porque en el desarrollo real almacenaremos en caché varios tipos de datos. Mientras usamos Redis, Memcached se puede abandonar por completo, pero todavía hay muchas empresas que usan Memcached y Redis. cachés.