2010-09-28 59 views
7

Heroku hỗ trợ memcache nguyên bản như một addon. vấn đề của tôi là, vẫn còn là một newbie đường ray, tôi không biết cách sử dụng memcache để tăng tốc yêu cầu tốn thời gian nhất của mình (tôi biết chúng là gì bằng cách tìm kiếm một phân tích mới). chúng ta có nên sử dụng đá quý như 'cache-money' trên đầu memcache không? có ai sử dụng act_as_cached nữa không?cách sử dụng memcache để tăng tốc đường ray/heroku

Tôi biết đây là một câu hỏi khá tầm thường. Tuy nhiên, sau khi tìm kiếm trên web trong nhiều giờ, tôi không thể tìm thấy một hướng dẫn phong nha. Bất kỳ trợ giúp/liên kết nào được đánh giá cao!

+0

Caching là một chủ đề rất rộng và bạn có thể làm nhiều loại khác nhau của nó. Memcached không có gì đặc biệt; nó chỉ là một phương tiện lưu trữ cho những thứ bạn muốn cache (vì mysql có thể là kho lưu trữ của bạn cho các đối tượng mà bạn muốn tồn tại lâu dài). Một loại bộ nhớ đệm khác có thể phù hợp hơn cho trang cụ thể của bạn. Trong mọi trường hợp, bạn sẽ cần cung cấp cho chúng tôi thêm chi tiết về yêu cầu chậm của bạn để có được câu trả lời tốt. Loại trang đó là gì? Công khai hoặc khác nhau cho mỗi người dùng? Phần lớn thời gian dành cho việc truy vấn cơ sở dữ liệu hoặc hiển thị chế độ xem? – tfe

+1

+1 cho câu hỏi này. Tôi cũng đang tìm kiếm một hướng dẫn về memcache. –

Trả lời

4

Bạn có thể xem Caching in Rails 2.1 và sau đó đọc memcached documentation (Tôi cho rằng bạn đã đọc nó) trong Heroku.

Ngoài ra, Touch and Cache là một kỹ thuật khá thú vị để tránh viết Sweepers để xóa nội dung được lưu trong bộ nhớ cache khi bạn cần làm mới dữ liệu được lưu trong bộ nhớ cache. Sử dụng cảm ứng sẽ tự động hết hạn dữ liệu được lưu trong bộ nhớ cache với hầu như không cần phải viết mã mới.

Xin lưu ý rằng ngày hôm nay, các memcached hội nhập Heroku giả sử bạn đang sử dụng Rails> = 2.3.3

Ý tưởng chính là bạn thêm kết quả (s) của phương pháp để Rails.cache tốn thời gian của bạn (mà là giao diện mà qua đó bạn truy cập cơ chế bộ nhớ đệm của bạn). Khi bạn tìm nạp (các) kết quả đó, cơ chế lưu vào bộ nhớ đệm sẽ tìm kiếm xem nó có thể tìm thấy nó hoặc nếu nó chưa hết hạn.

Nếu tìm thấy, nó sẽ trả về rất nhanh vì nó lấy nó từ bộ nhớ cache.

Nếu nó không tìm thấy nó hoặc nó đã hết hạn (bạn đặt này khi bạn gọi lấy), nó chạy phương pháp chậm thực tế để thêm nó hoặc làm mới nó trong bộ nhớ cache.

Cuối cùng, rất hữu ích khi đọc tài liệu Rails ngoài việc bạn đang sử dụng memcached hoặc bộ đệm trong bộ đệm Rails: Caching with Rails: An overview. Trong số những thứ khác, nó nói về:

  • trang bộ nhớ đệm
  • Action bộ nhớ đệm
  • Fragment caching
  • Sweeper
  • SQL bộ nhớ đệm
  • và nhiều hơn nữa ...
0

Bạn có thể cache trên memcache các action_cache hoặc bạn có thể truy cập vào memcache với Rails.cache

Các vấn đề liên quan