1、memcached
(1)windows下memcached的下载与安装
下载地址:http://jehiah.cz/projects/memcached-win32/
下文引用部分摘自:http://jackyoo8.iteye.com/blog/195857
想使用windows下可以配置的memcached,可以参考下面的链接。
http://www.iteye.com/topic/24505
memcache_client的下载地址:
(2)rails环境配置
下文摘自:http://thegiive.iteye.com/blog/79543
這篇介紹如何將 Memcached 跟 Rails 做一個結合,先介紹一下 Memcached 這個著名的套件。Memcached 是一個分散式的 Memory Object 架構,最早是 Life Journal Team 為了加快速度而開發的套件。 他可以啟動許多 Deamon 來將所有其他 Client 的 Object 都集合起來,並且做到多機器同步化的工作。他最大的優點是在於不需要考慮資料 ACID,所以速度方面相當的快。
當然,我們可以使用 Database 去做到一模一樣的事情,但是其實 Database 在 ACID 上面已經付出太多 Overhaed。如果今天需要操作的東西,是一些像是 Cache ,Session 之類真的不見就算了的東西 的話,你可以考慮使用效率比 Database 快的 Memcached。目前已經有相當多的網站 使 用 Memcached 的技術,可說是相當成熟。並且在 Web Server 使用考量上,Web Server 通常使用資源是高 CPU 低 Memory ,而 Memcached 是低 CPU 高 Memory 的使用方式,兩者可以結合彼此優缺點,讓 Web Server 跟 Memcached 跑在同一台機器上面來避免浪費資源使用率。
以 Ruby on Rails 來看,Memcached 可以用在
這三個用途。
我 目前使用他都是在 Session Store 這個部分,他可以將 Multi Backend Application Server 的 Session 存放放在同一處,當然可以提高Rails Scaling 的部分。而在實做上面,Memcache 沒有設定檔。要在 Master 啟動一個 2G Memory,listen 在 1.2.3.4 ,port 11211 的 Memcache Deamon 是這樣啟動的
# ./memcached -d -m 2048 -l 1.2.3.4 -p 11211Ruby 要使用 Memcached 是非常的簡單,只要用 Gem 安裝 Ruby 的 Memcached Client 即可。
gem i ruby-memcache但是現在還有更新的選擇, Robotcoop 所開發的 Ruby Memcached Client AP
# gem install memcache-client
require 'memcache' memcache_options = { :compression => false, :debug => false, :namespace => "app-#{RAILS_ENV}", :readonly => false, :urlencode => false } memcache_servers = [ 'localhost:11211' ] Rails::Initializer.run do |config| .... config.action_controller.session_store = :mem_cache_store config.action_controller.cache_store = :mem_cache_store, memcache_servers, memcache_options end ... cache_params = *([memcache_servers, memcache_options].flatten) CACHE = MemCache.new *cache_params ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.merge!({ 'cache' => CACHE })
iveJournal.com使用了memcached在前端进行缓存,取得了良好的效果,而像wikipedia,sourceforge等也采用了或即将采用memcached作为缓存工具。memcached可以大规模网站应用发挥巨大的作用。
2、timed_fragment_cache
git上的通通不能用了,有个尸体:http://github.com/rlivsey/timed_fragment_cache/tree/master
想找能用的,需要从这个网址下载:http://www.ruzee.com/blog/2008/07/timed_fragment_cache-on-rails-21/ 注意找到“Download version 0.2 ”下载即可。
使用方法:
controller中,
when_fragment_expired 'homepage_lines', 30.minutes.from_now do
view中,
<% cache('homepage_lines') do -%>
参照以上内容,就可以实现windows平台下基于时间过期策略的片断缓存。
最后,提供一个rails中的各种缓存方案的链接。
真实世界中的 Rails: Rails 中的缓存:
http://www.ibm.com/developerworks/cn/web/wa-rails1/
memcached完全剖析:
http://blog.csdn.net/starxu85/archive/2008/09/30/3002436.aspx
全文完
------------------------