2015-01-15 6 views
0

큰 데이터를 캐시하기 위해 지금 memcached를 LRU 캐시로 사용하고 있습니다. 최대 개체 크기를 128MB로 설정했습니다 (비효율적이며 권장되지 않음). 그리고 전체 memcached를 1GB로 설정했습니다. 그러나 128MB는 내 용도로는 충분하지 않으므로 Redis로 이동할 계획입니다. 몇 가지 질문 :Redis Vs. Memcached

  1. memcached는 매우 느립니다. - 현재 memcached 설정은 한 번만 요청을 반환하는 데 3-4 초가 걸립니다. 이것은 매우 느립니다. 때로는 하나의 사용자 요청을 처리하기 위해 최대 30 개의 memcached 요청을 작성해야합니다. 그리고이 작업을 수행하는 데는 90 초가 걸립니다! 제가 잘못한 일을하고 있습니까? 아니면 실제로 memcached가 느린가요?
  2. Redis가 더 빠를까요? - Redis 목록을 사용하여 데이터를 캐시 할 계획입니다. 0에서 -1을 사용하여 전체 목록을 가져옵니다. 90 초가 걸릴 경우 캐시를 사용하지 않아도되므로 Redis가 더 빨라지기를 바랍니다!

고마워요!

답변

0

병목 현상이 어디에 있는지 알기 위해 약간의 프로파일 링을하는 것이 좋습니다. 알 수없는 내 생각에 이러한 대형 개체를 사용하면 응용 프로그램 서버와 memcached 간의 연결이 제한 될 수 있으므로 redis로 비슷한 결과가 표시됩니다. 또한 앱이 많은 객체를 마샬링 및 언 마샬링하는 데 많은 시간을 할애 할 수 있습니다. 쉬운 일이라면 클라이언트에게 보내지는 요청을 캐싱하는 캐싱 구성을 시도해 볼 가치가 있습니다 (이는 128MB보다 훨씬 적음).

시도해 볼 또 다른 사항은 압축을 켜는 것입니다. 이것은 추가 지연 압축/압축 해제를 줄 것이지만, 이것이 실제로 문제가된다면 네트워크 대기 시간을 줄일 것입니다.

+0

감사합니다. rgbrgb. 내가 Redis를 사용하고 응용 프로그램이 지금 꽤 잘하고있다. Redis에 데이터를 저장하고 압축을 풀려면 시간이 많이 걸리지 만. 하지만 전반적으로 나는 캐싱 레이어없이 데이터베이스를 직접 사용하는 것보다 여전히 개선 된 것이라고 생각합니다. – huhahihi