2014-01-21 2 views
0

뉴스 사이트를 구축 중입니다. 현재 mySQL을 주 데이터 저장소로 사용하고 사용자 홈 페이지 피드에 대한 기사 목록을 유지 관리합니다. 사용자가 홈페이지에서 기사를 클릭하면 mysql에 연결되어 기사, 댓글 및 관련 자료의 주요 내용을 가져온다.모든 데이터가 redis에 저장되어야합니까?

모든 문서 데이터를 redis로 저장하는 것이 가장 좋습니다. 나는 mysql에 기사의 전체 내용을 전달하는 대신에, 성능 향상을 위해 redis 기사의 주요 내용을 저장하겠습니까?

+0

Redis를 * only * 데이터 저장소 또는 * primary *로 사용하고 MySQL을 * 보조 *로 사용 하시겠습니까? – Agis

+0

MySQL이 주요 데이터 저장소입니다. 뷰어 독립적 인 데이터 저장소로 Redis를 사용하여 성능을 향상시킵니다. – ipkiss

답변

1

이것은 의견을 기반으로하므로 여기에 의견이 있습니다. Redis는 캐시로 사용하기위한 준비가 완료되었습니다. 캐시 할 항목과 캐시가 실제로 필요한지 결정해야합니다. 이는 앱의 규모에 따라 다릅니다. 기사가 많이 바뀌고 거대한 사용자/방문객 기반이없는 경우 Redis는 전혀 필요하지 않다고 생각합니다. 거기에 물건을 검색 할 수 없다는 것을 기억하십시오. Redis에서 SELECT articles WHERE author='foo'을 사용할 수 없습니다.

많은 사용자가 있기 때문에 DB로드가 크게 늘어나는 경우 모든 기사의 HTML을 미리 렌더링하여 Redis에 넣을 수 있습니다. 그러면 DB와 웹 서버의 부하가 줄어 듭니다. 그러나 어떤 기사를 표시할지 이미 알고있는 경우에만 가능합니다.

1

이는 귀하의 사례에서 취해야 할 역할에 따라 다릅니다.

캐시 역할을하는 경우 가능하면 더 많은 데이터를 redis로 저장할 수 있습니다. 개발 오버 헤드가 적고 프로세스가 새로운 오류를 유발하지 않는 한.

redis를 데이터의 주요 소스로 사용하려는 경우, 귀하의 경우처럼 들리지 않는 것, MySQL에서 모든 것을 옮길 수 있습니다. 낮고 "드물게"변화하는 데이터로 인해 가치가있을 수 있습니다. 그러나 데이터베이스를 백업하고 변경 후 HDD에 동기화하는 것을 잊지 마십시오.

관련 문제