# 레디스 클라이언트 사이드 캐시로 반응성 향상 시키기

> Clean Markdown view of GeekNews topic #18012. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18012](https://news.hada.io/topic?id=18012)
- GeekNews Markdown: [https://news.hada.io/topic/18012.md](https://news.hada.io/topic/18012.md)
- Type: news
- Author: [lemonmint](https://news.hada.io/@lemonmint)
- Published: 2024-11-29T10:46:34+09:00
- Updated: 2024-11-29T10:46:34+09:00
- Original source: [gosuda.org](https://gosuda.org/ko/blog/posts/improving-responsiveness-with-redis-client-side-caching-zb711e502)
- Points: 13
- Comments: 1

## Summary

레디스는 빠르지만 잦은 데이터 조회로 인해 API 서버에 부담을 줄 수 있으며, 특히 실시간 데이터의 경우 효율적인 캐시 전략이 필요합니다. Redis 6.0부터 지원하는 Invalidation Message를 활용하면 서버가 클라이언트 캐시를 관리하여 갱신 시 캐시를 삭제하도록 할 수 있으며, Go 언어에서는 redigo+ristretto 조합이나 rueidis 라이브러리를 사용하여 이를 구현할 수 있습니다. 이를 통해 API 응답 속도가 최대 82% 개선되고 Redis 서버의 부담도 감소하는 등 성능 향상 효과가 큽니다.

## Topic Body

레디스는 빠르지만, 잦은 데이터 조회는 API 서버에 부담을 줍니다. 특히 실시간 데이터처럼 갱신은 불규칙하지만 자주 조회해야 하는 경우, 효율적인 캐시 전략이 필요합니다.  
  
*   **문제점**: Redis PubSub이나 Keyspace Notification은 갱신 감지 및 메시지 처리 로직이 복잡하거나 리소스 낭비를 유발할 수 있습니다.  
  
*   **해결책**: Redis 6.0부터 지원하는 Invalidation Message는 서버가 클라이언트 캐시를 관리하는 방식입니다.  
    *   클라이언트가 키를 읽은 후 다른 클라이언트가 변경하면, Redis가 갱신 메시지를 보내 캐시를 삭제하도록 합니다.  
  
*   **구현**: Go 언어에서 redigo+ristretto 조합 또는 rueidis 라이브러리를 사용하여 Invalidation Message를 적용할 수 있습니다.  
    *   redigo+ristretto는 커스텀 로직이 필요하지만, rueidis는 DoCache 함수로 간단하게 구현 가능합니다.  
  
*   **결과**: 실제 적용 결과, API 응답 속도가 최대 82% 개선되었으며, Redis 서버 부담도 감소했습니다. 클라이언트 사이드 캐시 관리는 필요하지만, 성능 향상 효과가 큽니다.

## Comments



### Comment 31841

- Author: jujumilk3
- Created: 2024-11-29T11:18:41+09:00
- Points: 1

👀
