Guest User

Untitled

a guest
Dec 6th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. class RedisSessionStore(SessionStore):
  2. def __init__(self, expire = 1800, key_prefix=''):
  3. SessionStore.__init__(self)
  4. self.redis = redis.Redis(tools.config.get('redis_host', 'localhost'),
  5. int(tools.config.get('redis_port', 6379)),
  6. int(tools.config.get('redis_dbindex', 1)),
  7. password=tools.config.get('redis_pass', None))
  8. self.path = session_path()
  9. self.expire = expire
  10. self.key_prefix = key_prefix
  11.  
  12. def save(self, session):
  13. key = self._get_session_key(session.sid)
  14. data = cPickle.dumps(dict(session))
  15. self.redis.setex(key, data, self.expire)
  16.  
  17. def delete(self, session):
  18. key = self._get_session_key(session.sid)
  19. self.redis.delete(key)
  20.  
  21. def _get_session_key(self,sid):
  22. key = self.key_prefix + sid
  23. if isinstance(key, unicode):
  24. key = key.encode('utf-8')
  25. return key
  26.  
  27. def get(self, sid):
  28. key = self._get_session_key(sid)
  29. data = self.redis.get(key)
  30. if data:
  31. self.redis.setex(key, data, self.expire)
  32. data = cPickle.loads(data)
  33. else:
  34. data = {}
  35. return self.session_class(data, sid, False)
Add Comment
Please, Sign In to add comment