2016-07-25 3 views
0

저는 memcached를 사용하여 PHP 웹 사이트의 전역 상태를 저장하고 있습니다. 저장된 데이터는 로그인 한 사용자의 요청으로 액세스해야합니다.memcached에서 개체 영속성을 유지할 수있는 방법이 있습니까?

memcached가 가득 차면 가장 오래된 개체를 덤프한다는 것을 알고 있습니다. 이 경우 사용할 수있는 대체 기술이 있습니까?

또는 memcached를 무시하십시오. MySQL에 의지하지 않고 PHP에서 전역 상태를 저장하는 더 빠른 방법은 무엇입니까?

+0

MySQL을 사용하는 것을 꺼리는 이유는 무엇입니까? – bnxio

+0

물건을 빠르게하려고합니다. 내가 저장하고있는 것은 9 개의 배열로 정렬 된 튜플 { 'userid', 'state1', 'state2', 'state3}입니다. –

답변

0

세션에 JSON으로 저장할 수 있습니다. PHP에서 memcached 대신 Redis를 사용하고 최대 메모리 사용을 설정할 수도 있습니다.

+0

Redis는 좋은 선택입니다. 감사합니다. 세션과 관련하여 사용자별로, 즉 글로벌이 아닌가? –

+0

예, 세션은 사용자별로 있습니다. 글로벌 제품의 경우 Redis를 사용하십시오. – Eric

0

귀하의 질문은 오랫동안 메모리에 무언가를 보관하는 방법을 묻는 것과 같습니다.

Memcache는 이전 항목이 가득차면 다른 항목을 추가합니다. 캐시가 null을 반환하거나 어떤 이유로 든 비활성화 된 경우 캐시에 일부 항목을 넣는 절차가 활성화되는 방식으로 응용 프로그램이 작동해야합니다. 이런 soemthing : 항목이 널이 아닌 경우 1- 캐시 2-에서 항목을 판독 아이템 4- 5- 캐시 내의 아이템을 넣어 데이터베이스로부터 아이템 (또는 다른 소스) 판독 -3- 창 6- 아이템 반품

캐시는 영구 메모리가 아니므로 응용 프로그램은 현금 없이도 작동 할 수있는 디자인이어야합니다.

그러나 응용 프로그램 상태이기 때문에 해당 항목에 대한 호출이 너무 커서 대기열의 끝으로 가지 않을 것입니다. 이 방법은 좋지 않지만 캐시에서 해당 항목을 가져 와서 큐의 끝으로 이동하지 못하도록 서비스를 만들 수도 있습니다.

관련 문제