3

我的顾问接管了一个相当繁忙的 Django 应用程序,它通过 Redis 处理缓存,除了 Django.session 数据。唯一可用的信息是诸如“Reverting session storage via Redis”之类的提交消息。

我已经测试了存储在 Redis 中的 Django 会话,这似乎是一个不错的解决方案,但我很犹豫是否将其推下管道,因为我想知道为什么原始开发人员会取消它。

据我了解 Django 会话逻辑,它只是一个 key:value 存储,其中 value 是一个带有相关会话数据的腌制 Python 对象。

简洁版本:

使用 Redis 处理 Django.session 数据的缺点是什么?

4

1 回答 1

8

Redis 是存储会话而不是将会话添加到 SQL 数据库中的快速快捷方式(尝试监控查询会话表所用的时间),如果您使用 django-toolbar app 之类的工具,这一点显然会很清楚。

另一方面,唯一可能出现问题的是您的会话数据持久性,在 Redis 中已通过 2 种不同的方法进行处理,您可以选择适合您需要的方法,请参阅文档以获取更多详细信息,以及制作集群或故障转移 Redis 服务器的选项。

我遇到了类似的情况,出于速度和其他与项目相关的原因,我需要将会话存储在 NoSQL DB 中,这发生在我使用 django-redisession 应用程序时,我建议尝试一下。

最后,关于你一直在说的购物卡问题,这绝对和 Redis 无关,请检查你的系统配置以及不同软件组件之间的交互方式。我还建议在复制服务器中进行测试,而不是在生产服务器上执行此操作,以确保一切正常工作且配置良好。

更新

顺便说一句,Stackoverflow 使用 Redis 进行会话处理,这是使用 NoSQL DB 作为后端的会话管理的一个非常强大的示例。

于 2013-01-16T20:32:14.880 回答