2014-10-31 2 views
0

나는 20K 명의 사용자 집합과 페이스 북과 같은 피드를 가지고 있습니다. 많은 댓글, 공유, 좋아요가 있습니다. 정보를 표시 할 때 일부 전역 사용자 데이터 (아바타, 이름, ID)가 필요합니다. 그런 경우에 가장 좋은 방법은 무엇입니까?소셜 네트워크에 사용자 글로벌 정보를 저장하는 방법

각 게시물/게시에 대해 mysql 및 JOIN 사용자 데이터를 사용해야합니까? 아니면 memcache에 20K 사용자 전체를 저장하고 거기에서 사용하는 것이 더 낫습니까?

현재 두 번째 옵션을 사용하고 있습니다. 모든 사용자가 memcache에서 20M 변수를 얻고 있으며 성능 문제가 있습니다.

이 데이터는 많이 사용되기 때문에 memcache 옵션이 더 좋을 것으로 생각됩니다. 그러나이 경우에는 하나의 큰 배열 (20M)에서 사용하거나 모든 사용자에 대해 단일 변수를 사용하면 더 좋습니다.

+0

모든 요청에 ​​대해 서버간에 20MB의 데이터를 보내는 것은 매우 어렵습니다 (사이트에서 아무 때나 전체 캐시 항목을 업데이트해야하므로). 개별 항목을 캐시하십시오. 목적에 따라 다른 종류의 항목 캐시를 가질 수 있습니다. 피드의 경우 전체 게시물의 HTML, 아바타 및 전체를 잠시 동안 캐시 할 수 있습니다. 프로필에 대한 사용자 정보를 별도로 캐시 할 수 있습니다. – ceejayoz

+0

감사합니다. 너 나 많이 도와 줬어. 답으로 게시 할 수 있다면 그것을 solutin으로 표시 할 것입니다. 내 문제는 지금 해결됩니다 :) –

답변

0

모든 요청에 ​​대해 서버간에 20MB의 데이터를 보내는 것은 매우 어렵습니다 (사이트에서 아무 때나 전체 캐시 항목을 업데이트해야하므로). 개별 항목을 캐시하십시오. 목적에 따라 다른 종류의 항목 캐시를 가질 수 있습니다. 피드의 경우 전체 게시물의 HTML, 아바타 및 전체를 잠시 동안 캐시 할 수 있습니다. 프로필에 대한 사용자 정보를 별도로 캐시 할 수 있습니다.

관련 문제