Memcached vs. Redis?

우리는 캐싱을 위해 Redis 서버가 있는 Ruby 웹앱을 사용하고 있습니다. Memcached를 대신 테스트할 이유가 있을까요?
어떤 것이 더 나은 성능을 제공할까요? Redis와 Memcached 간의 장단점은 무엇인가요?

  • Read/write speed.
  • Memory usage.
  • Disk I/O dumping.
  • Scaling.

Redis를 사용하세요, 만약에:

  • 캐시에서 항목을 선택적으로 삭제하거나 만료시켜야 하는 경우 (이건 꼭 필요합니다)
  • 특정 유형의 키를 조회할 수 있어야 하는 경우
    예: 'blog1:posts:*', 'blog2:categories:xyz:posts:*'
    (이건 정말 중요합니다)

이 기능을 사용하면 특정 유형의 캐시 항목을 선택적으로 무효화할 수 있습니다.
또한 프래그먼트 캐시, 페이지 캐시, 특정 유형의 AR 객체만 무효화할 수도 있습니다.

  • 영속성이 필요할 경우
    (이것도 필요합니다. 매번 재시작할 때 캐시를 다시 채워야 하는 상황이 아니라면요.
    자주 바뀌지 않는 객체들에는 필수입니다)

Memcached를 사용하세요, 만약에:

  • Memcached가 골칫거리라면!
  • 클러스터링? 음… 그 정도까지 갈 거면 차라리 Varnish와 Redis를 사용해서
    프래그먼트 및 AR 객체 캐싱을 하세요.
  • 제 경험상 Redis가 Memcached보다 훨씬 안정적이었습니다.