Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class RedisSessionStore(SessionStore):
- def __init__(self, expire = 1800, key_prefix=''):
- SessionStore.__init__(self)
- self.redis = redis.Redis(tools.config.get('redis_host', 'localhost'),
- int(tools.config.get('redis_port', 6379)),
- int(tools.config.get('redis_dbindex', 1)),
- password=tools.config.get('redis_pass', None))
- self.path = session_path()
- self.expire = expire
- self.key_prefix = key_prefix
- def save(self, session):
- key = self._get_session_key(session.sid)
- data = cPickle.dumps(dict(session))
- self.redis.setex(key, data, self.expire)
- def delete(self, session):
- key = self._get_session_key(session.sid)
- self.redis.delete(key)
- def _get_session_key(self,sid):
- key = self.key_prefix + sid
- if isinstance(key, unicode):
- key = key.encode('utf-8')
- return key
- def get(self, sid):
- key = self._get_session_key(sid)
- data = self.redis.get(key)
- if data:
- self.redis.setex(key, data, self.expire)
- data = cPickle.loads(data)
- else:
- data = {}
- return self.session_class(data, sid, False)
Add Comment
Please, Sign In to add comment