Django session存储到redis数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django session存储到redis数据库相关的知识,希望对你有一定的参考价值。

把session存储到redis数据库,需要在setting中配置

django-redis 中文文档

http://django-redis-chs.readthedocs.io/zh_CN/latest/#cache-backend

技术分享图片

在使用django1.6+的时候,默认会吧session存放在数据库django_session表里。
如果要把session放在内存中,就应该在settings.py 中配置
SESSION_ENGINE = "django.contrib.sessions.backends.cache"

使用的时候:

新增:request.session["userName"] = "Tom"
查询:name = request.session["userName"]
删除:del request.session["userName"]


好,那更复杂一点的数据该如何存储呢:比如一个对象Student。
按照其他语言的习惯,比如java和C#,按理说应该是:

stu = Student(name="Tom",age = 12)
新增:request.session["user"] = stu
查询:stu = request.session["user"]
删除:del request.session["user"]

 

存放对象的时候,如果session是存放在内存中,那么是没有问题的。但是一旦存放在数据库中就不行了。
为何?
因为存放在数据库中的东西,是需要能够进行json序列化的。
Student是不能被序列化json的。需要把Student转换为字典,没错,是字典
{“name”:“Tom”,“age”:12}
这样才能存放在数据库session中。

 

 

原文地址: https://blog.csdn.net/shilei123456789666/article/details/79116271

以上是关于Django session存储到redis数据库的主要内容,如果未能解决你的问题,请参考以下文章

工具-Redis-django存储session(99.6.4)

Django之使用redis缓存session,历史浏览记录,首页数据实现性能优化

Django的Session存储Redis环境配置

Django_redis_session

redis和python交互和django中配置用redis存储session

07 Redis存储Session