事情是这样的,大概也就几万注册用户的站点(使用django1.6), session 存储在关系型数据库,这次上线之后发现session表几十万数据了,过期session没有被自动删除
思考
官网 session文档
django的 session是可以存储在多种介质下的,db,文件,cache(缓存也可以定义)都行,也可以使用cookie base的session
默认的序列化方式是BaseJSONSerializer,1.5和以前的版本使用的是pickle
默认的session时间是2周,1209600秒
对策
如果用户主动退出,session会自动清除,如果没有退出就一直保留,记录数越来越大,要定时清理没用的session。
- django中已经提供了这个方法,推荐把它加入到crontab中自动清理过期的session,防止session表记录过大,影响访问速度。
django manage.py clearsessions