Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Anotaciones para Trabajar con Caché | Caché con Redis y Spring Boot
Introducción a Redis

bookAnotaciones para Trabajar con Caché

En lugar de gestionar manualmente el caché, puedes utilizar anotaciones que administran automáticamente el proceso. Veamos las anotaciones disponibles.

Almacenamiento en caché de resultados

La anotación @Cacheable se aplica a métodos cuyos resultados deben ser almacenados en caché. Cuando el método se llama nuevamente con los mismos parámetros, el resultado se recupera del caché.

@Cacheable(value = "usersCache", key = "#userId")
public User getUserById(String userId) {
    return userRepository.findById(userId);
}

En este ejemplo, el método getUserById almacena en caché el resultado de una consulta de usuario por su ID en una caché llamada "usersCache". Si el método se llama nuevamente con el mismo userId, los datos se recuperan de la caché en lugar de ejecutar la consulta contra la base de datos.

Actualización de la caché

La anotación @CachePut actualiza la caché cada vez que se ejecuta el método, independientemente de si el resultado fue almacenado en caché previamente.

@CachePut(value = "usersCache", key = "#user.id")
public User updateUser(User user) {
    return userRepository.save(user);
}

La anotación @CachePut se utiliza para actualizar la caché cada vez que se llama al método updateUser. Esto resulta útil cuando los datos cambian y es necesario sincronizar la caché con los cambios en la base de datos. La caché se actualiza con la clave correspondiente al ID del usuario.

Eliminación de la caché

La anotación @CacheEvict se utiliza para eliminar datos de la caché, como cuando un usuario es eliminado de la base de datos.

@CacheEvict(value = "usersCache", key = "#userId")
public void deleteUser(String userId) {
    userRepository.deleteById(userId);
}

En este ejemplo, el método deleteUser elimina la entrada de la caché con la clave igual a userId.

Operaciones combinadas de caché

La anotación @Caching permite realizar múltiples operaciones de caché dentro de un solo método, combinando @CachePut y @CacheEvict.

@Caching(
    put = { @CachePut(value = "usersCache", key = "#user.id") },
    evict = { @CacheEvict(value = "usersCache", key = "#user.id") }
)
public User updateUser(User user) {
    return userRepository.save(user);
}

En este ejemplo, el método updateUser actualiza simultáneamente la caché con el nuevo estado del usuario utilizando @CachePut y elimina la entrada antigua de la caché usando @CacheEvict. Esto resulta útil cuando es necesario realizar múltiples operaciones de caché al mismo tiempo.

1. ¿Cuándo se utiliza @CacheEvict?

2. ¿Cuál es el propósito de la anotación @CachePut?

question mark

¿Cuándo se utiliza @CacheEvict?

Select the correct answer

question mark

¿Cuál es el propósito de la anotación @CachePut?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.33

bookAnotaciones para Trabajar con Caché

Desliza para mostrar el menú

En lugar de gestionar manualmente el caché, puedes utilizar anotaciones que administran automáticamente el proceso. Veamos las anotaciones disponibles.

Almacenamiento en caché de resultados

La anotación @Cacheable se aplica a métodos cuyos resultados deben ser almacenados en caché. Cuando el método se llama nuevamente con los mismos parámetros, el resultado se recupera del caché.

@Cacheable(value = "usersCache", key = "#userId")
public User getUserById(String userId) {
    return userRepository.findById(userId);
}

En este ejemplo, el método getUserById almacena en caché el resultado de una consulta de usuario por su ID en una caché llamada "usersCache". Si el método se llama nuevamente con el mismo userId, los datos se recuperan de la caché en lugar de ejecutar la consulta contra la base de datos.

Actualización de la caché

La anotación @CachePut actualiza la caché cada vez que se ejecuta el método, independientemente de si el resultado fue almacenado en caché previamente.

@CachePut(value = "usersCache", key = "#user.id")
public User updateUser(User user) {
    return userRepository.save(user);
}

La anotación @CachePut se utiliza para actualizar la caché cada vez que se llama al método updateUser. Esto resulta útil cuando los datos cambian y es necesario sincronizar la caché con los cambios en la base de datos. La caché se actualiza con la clave correspondiente al ID del usuario.

Eliminación de la caché

La anotación @CacheEvict se utiliza para eliminar datos de la caché, como cuando un usuario es eliminado de la base de datos.

@CacheEvict(value = "usersCache", key = "#userId")
public void deleteUser(String userId) {
    userRepository.deleteById(userId);
}

En este ejemplo, el método deleteUser elimina la entrada de la caché con la clave igual a userId.

Operaciones combinadas de caché

La anotación @Caching permite realizar múltiples operaciones de caché dentro de un solo método, combinando @CachePut y @CacheEvict.

@Caching(
    put = { @CachePut(value = "usersCache", key = "#user.id") },
    evict = { @CacheEvict(value = "usersCache", key = "#user.id") }
)
public User updateUser(User user) {
    return userRepository.save(user);
}

En este ejemplo, el método updateUser actualiza simultáneamente la caché con el nuevo estado del usuario utilizando @CachePut y elimina la entrada antigua de la caché usando @CacheEvict. Esto resulta útil cuando es necesario realizar múltiples operaciones de caché al mismo tiempo.

1. ¿Cuándo se utiliza @CacheEvict?

2. ¿Cuál es el propósito de la anotación @CachePut?

question mark

¿Cuándo se utiliza @CacheEvict?

Select the correct answer

question mark

¿Cuál es el propósito de la anotación @CachePut?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 3
some-alt