2010-02-23 4 views
0

외부 C++ 프로그램에서 업데이트 된 데이터베이스가있는 레일스 응용 프로그램이 있습니다. 조각 캐싱을 사용하여 응용 프로그램의 속도를 높이고 싶지만 레코드가 업데이트되면 대응하는 조각 캐시 항목이 만료되어야합니다. 어떤 아이디어?외부 응용 프로그램에서 만료 된 레일 조각 캐시

답변

1

C++ 응용 프로그램이 데이터베이스와 직접 대화하는 경우 cache_key과 함께 조각 캐싱을 사용할 수 있습니다.

레일에 손쉽게 내장되어 있습니다. C++ 응용 프로그램이 주 레코드 내용이 업데이트 될 때 레코드의 updated_at 필드를 업데이트해야합니다. 그런 다음 조각을 레코드 개체 범위로 지정할 수 있으며 레코드가 변경되면 캐시가 자동으로 만료됩니다.

<% cache [@article, :metadata] do %> 
here the content to be cached 
for example the <%= @article.title %>. 
:metadata is simply a name for this fragment. 
<% end %> 

가 @article 레코드 2010-02-10 18시 0분 0초에 저장된 가정하고, 조각은 /path/to/cache/.../24-20100210180000에서 캐시됩니다. C++이 레코드를 업데이트하고 updated_at 열을 변경하면 캐시가 무효화되고 다음 요청이 자동으로 내용을 다시 읽습니다.

캐싱에 대한 자세한 내용은 http://railslab.newrelic.com/scaling-rails

을 확인하십시오.
관련 문제