2010-05-10 2 views
0

이 질문은 내 웹 개발자로서의 나의 무지를 드러 낼지 모르지만 그것은 나에게 나쁜 일이 아닐까?ASP.NET 또는 PHP : Memcached가 사용자 상태 정보를 저장하는 데 유용합니까?

사용자 상태 정보를 저장할 필요가 있습니다. 사용자 당 저장해야하는 정보의 예. (사용자 정의 인증되지 않은 방문자)

  1. 사용자가 구글/빙/야후에서 사이트에 도착
  2. 사용자 사용 (참/거짓) 현재 방문
  3. 에 이전 방문 제품 페이지의
  4. 목록 검색 기능을

이 뷰 상태에서 저장할 수 있지만 이해할 수있는 상당한 양의 볼 수없는 정보를 함께 볼 수 있기 때문에 최종 사용자의 관점에서 페이지로드 문제가 발생합니다. 서버가 유일한면이지만 최종 사용자 그 정보가 필요합니다.

비슷한 내용으로 세션 상태를 사용하여 이러한 정보를 저장할 수는 있지만 이것이 동일한 정보가 사용자에게 전송되어 쿠키에 저장된다는 것을 이해합니다. (viewstate만큼 나쁘지는 않지만 이상적이지는 않습니다.)

이렇게하면 서버 전용 세션 저장 시스템 또는 mem 캐싱 솔루션이 제공됩니다.

memcached가 유일한 좋은 옵션입니까?

답변

1

항목 1과 2는 정보를 기록하는 것처럼 보입니다. 즉, 검색어를 계속 유지하고 싶지 않으면 항목 1과 2를 다시 참조 할 필요가 없습니다. 그냥 어딘가에 로그에 기록하고 잊어 버리시겠습니까?

나는 뷰 상태

내가 그는 asp.net 것 같은데요이를 저장할 수 - 확실히 나에게 아무것도 의미하지 않는다, 그래서 말씀 드릴 수 없습니다. 이 항목에 대한 선택의 내 저장소 것 3.

이도하지 않습니다 -

는 세션 상태가

예와 같은 정보를 저장하는 데 사용될 수 있다는 것을 나의 이해이다 동일한 정보가 사용자에게 전송되어 쿠키에 저장됩니다.

아니요 - 세션 쿠키는 PHP에서 서버 측에 저장된 데이터 (및 내가 만났던 다른 모든 HTTP 세션의 임팩트)에 대한 핸들입니다.

이것은 서버 전용 세션 스토리지 시스템 또는 MEM-캐싱 솔루션

memcache에 어느 날 잎은 정말 세션 저장 기판 같은 사용 입니다.

memcache를 세션 저장 장치로 사용할지 여부에 관계없이 단일 서버에서 NT (IIRC)는 고정 크기 캐시/버퍼를 사용하지만 Posix/Unix/Linux는 사용 가능한 모든 메모리를 사용) 나는 세션 I/O가 디스크가 아닌 메모리에있을 것으로 기대한다. 실제 이점은 클러스터를 실행하는 경우입니다 (그러나이 시나리오에서는 카산드라와 같은 것을 고려할 수 있습니다).

IME는 세션이 오버 헤드가 크지는 않지만 세션의 활동에 대한 무기한 기록을 유지하려면 세션에 데이터가 오버플로되어 (세션을 별도로 유지해야 함) 너무 큰.

C.

+0

요약하면 "세션"정보를 저장하기 위해 세션 상태를 사용하는 것으로 나타납니다. 비록 최종 사용자가 자신의 쿠키에 식별자 만 저장하고 있다고하더라도 세션 상태로 정보를 저장하기 위해서는 최종 사용자가 쿠키를 활성화해야합니까? 쿠키를 사용하지 않는 모든 방문객을 놓치고 있습니까? –

+0

아니요, URL을 통해 세션 핸들을 전파 할 수 있지만 항상 올바른 값으로 채워져 있는지 확인하는 것은 매우 어렵습니다. 쿠키가 비활성화되어 있는지 감지하고 사용자에게 제대로 사용하지 않도록 설정하도록 요청하는 자바 스크립트 제작을 제안합니다. – symcbean

1

Memcached는 자주 읽는 것이 좋으며 드물게 키/값 데이터를 쓰지는 않지만 이름에서 알 수있는 캐시입니다. 예 : 드물게 변경되는 제품 정보를 제공하는 경우 memcached에 저장하므로 반 정적 데이터에 대해 데이터베이스를 반복적으로 쿼리하지 않습니다. 세션 상태를 사용하여 정보를 저장해야하며, 전달되는 유일한 것은 서버에 남아있는 실제 데이터가 아니라 세션 식별자입니다.

+0

그래도 최종 사용자가 쿠키를 사용하도록 설정해야합니까? –

+1

사용중인 프레임 워크에 따라 다릅니다. PHP와 asp.net은 URL에 세션 식별자를 추가하여 cokiesless 세션 상태를 지원합니다. –

관련 문제