原创  rails使用memcache缓存session 收藏

 
 前提条件:安装了memcache server以及rails的客户端memcache-client
 
修改environment.rb:
找到config.action_controller.session_store = :active_record_store改为
config.action_controller.session_store = :active_record_store
 
然后再最后加上:
memcache_options = {
   :compression => true,
   :debug => false,
   :namespace => "mem-#{RAILS_ENV}",
   :readonly => false,
   :urlencode => false
}
 
memcache_servers = [ '192.168.100.231:11211' ]
 
CACHE = MemCache.new(memcache_options)
CACHE.servers = memcache_servers
ActionController::Base.session_options[:cache] = CACHE
 
修改好后,以debug模式启动memcahce server
/usr/local/weip/memcached-1.2.1/bin/memcached -vv -l 192.168.100.231 -p 11211 -m 256 -P /tmp/memcached.pid -u root
你会看到:
。。。。。。
<3 server listening
 
 
再启动你的rails应用
 
访问页面,你会看到memcache server的确有动静:
。。。。。。。。。。
slab class 40: chunk size 504692 perslab     2
<3 server listening
<6 new client connection
<6 set mem-test:test 0 -1 84
>6 STORED
<6 get mem-test:test
>6 END
<6 set mem-test:test 0 0 84
>6 STORED
<6 get mem-test:test
>6 sending key mem-test:test
>6 END
 
上面示例出现的配置试你的机器而定
 
一个奇怪的问题是:就算你不启动memcache server,你的页面也可以访问成功,那么你的session存在哪?
我查看了/tmp/sessions,没有任何动静,(默认使用文件系统存储sessions时,这个文件夹会一直有文件产生)我想只有可能是存在内存里面了
 

发表于 @ 2007年05月22日 20:42:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:深入分析跨域cookie的问题 | 新一篇:lighttpd安全认证设置实践

  • 发表评论
  • 评论内容:
  •  
Copyright © pwlazy
Powered by CSDN Blog