我的咨询公司接管了一个相当繁忙的Django应用程序,该应用程序通过Redis EXCEPT处理Django.session数据的缓存。唯一可用的信息是提交消息,例如"通过Redis恢复会话存储"。
我已经测试了存储在Redis中的Django会话,这似乎是一个很好的解决方案,但是我很犹豫要把它推到管道上,因为我想知道为什么原来的开发者会把它拉下来。
我理解Django会话逻辑,它只是一个关键:值存储,其中value是带有相关会话数据的pickle Python对象。
短版本:
使用Redis处理Django.session数据的缺点是什么?
答案 0 :(得分:6)
Redis是存储会话的快速而快捷的方式,而不是在SQL DB中添加它们(尝试监视查询会话表所花费的时间),如果您使用django-toolbar app之类的工具,这一点显而易见
另一方面,唯一可能出现问题的是你的会话数据持久性,Redis已经用2种不同的方法处理过,你可以根据自己的需要选择,请参考文档有关更多详细信息,以及制作群集或故障转移Redis服务器的选项。
我遇到了类似的情况,我需要将我的会话存储在NoSQL数据库中以获得速度和其他与项目相关的原因,这就是我使用django-redisession应用程序,我建议尝试一下。
最后,关于您一直在谈论的购物卡问题,这绝对与Redis无关,请检查您的系统配置以及不同软件组件如何相互交互。我还建议在副本服务器上进行测试,以便在生产服务器上执行此操作,以确保一切正常运行且配置良好。
<强>更新强>
顺便说一句,Stackoverflow使用Redis进行会话处理,这是使用NoSQL DB作为后端的会话管理的一个非常强大的例子。