2012-09-01 4 views

답변

1

데이터베이스를 너무 많이 쿼리하지 않도록 캐시가 사용됩니다.

일부 쿼리는 실행하는 데 특히 시간이 오래 걸립니다. 결과를 캐싱 (예 : 메모리에 저장)하면 비용이 많이 드는 쿼리를 다시 실행할 필요가 없습니다 (데이터 유효 기간 - 유효 기간은 몇 분 또는 일부 데이터가 저장 될 때까지). 특정 테이블이 변경됨).

캐시는 대개 거대한 해시 테이블로 구현되며 키와 값이 사용됩니다. 키는 값을 검색하는 데 사용됩니다.

캐시 사용은 http://www.playframework.org/documentation/2.0/ScalaCache으로 설명됩니다. 그것을위한 코드를 작성하는 것은 매우 쉽습니다. 캐시에 항목을 저장하려면 다음을 수행하십시오.

여기에 객체를 저장할 객체와 객체를 전달하기 만하면됩니다.

그것을 검색하려면 :

val user: User = Cache.getOrElseAs[User]("item.key") { 
    User.findById(connectedUser) 
} 

는 기본적으로 getOrElseAs [클래스는 여기에 데이터를 캐스팅] (여기 키).

getOrElseAs에 전달할 수있는 블록이 있음을 알 수 있습니다. 따라서 찾을 수없는 경우 데이터베이스를 쿼리 할 수 ​​있습니다.

그렇지 않으면 Cache.getAs[User]("item.key")을 사용할 수도 있습니다 (그러나 찾을 수없는 경우 어쨌든 쿼리하려고합니다).

+0

Play2와 다른 Play 1 샘플을 제공했거나 수정하겠습니까? 아니면 내가 할 수 있습니까? – biesior

+0

나는 그것이 Play2 샘플이라고 생각 하나? –

+0

그는 실제로 응용 프로그램 수준 캐시가 아닌 내부 포스트그레스 캐시에 대해 묻습니다. – Will

관련 문제