开发者

rack session resets/expires

Currently 开发者_运维技巧I am using enable :sessions for my sinatra webserver. But I need to move into a memory based session management

When I use Rack::Session::Pool, it runs although my session seems to expire on page reload, or even on a new Ajax Call being made.


If you are using Passenger or one of the other webservers, it's because a new thread gets created. If you reload on your page quickly you'll probably get expired sessions with a new thread being created (it's in memory on a specific webserver thread)

If you reload your page slowly it shouldn't expire the session because your still on the same webserver thread.


Nick is correct about the threading issue that Passenger brings to light.

Redis is a great in-memory solution. It is incredibly lightweight. You can find out more here: http://redis.io/.

I use the Redis adapter for Rack::Session.

You can find more about it here: http://redis-store.org/redis-rack/

It is pretty easy. Just include gem redis-rack in your Gemfile and do this in your sinatra app

require 'redis-rack'
disable :sessions
use Rack::Session::Redis
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜