rails使用memcache快取session

2021-08-22 09:00:06 字數 1320 閱讀 2243

前提條件:安裝了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 = ",

: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 class40: 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

上面示例出現的配置試你的機器而定

乙個奇怪的問題是:就算你不啟動memcacheserver,你的頁面也可以訪問成功,那麼你的session存在哪?

我檢視了/tmp/sessions,沒有任何動靜,(預設使用檔案系統儲存sessions時,這個資料夾會一直有檔案產生)我想只有可能是存在記憶體裡面了

Memcache使用教程

memcached是乙個自由開源的,高效能,分布式記憶體物件快取系統。memcached是以livejournal旗下danga interactive公司的brad fitzpatric為首開發的一款軟體。現在已成為mixi hatena facebook vox livejournal等眾多服務...

Memcache使用環境

使用memcache的 一般流量都是比較大的,為了緩解資料庫的壓力,讓memcache作為乙個快取區域,把部分資訊儲存在記憶體中,在前端能夠迅速的進行訪問。那麼一般的焦點就是集中在如何分擔資料庫壓力和進行分布式,畢竟單台memcache的記憶體容量的有限的。我這裡簡單提出我的個人看法,未經實踐,權當...

memcache基本使用

一 初次使用 import memcache mc memcache.client 192.168.252.128 11211 debug true 不寫埠用預設的 mc.set foo bar ret mc.get foo print ret 二 支援集群 如果使用者根據如果要在記憶體中建立乙個鍵...