【问题标题】:django cached sessiondjango 缓存会话
【发布时间】:2011-03-16 09:35:36
【问题描述】:

我有两个问题:

1) 我想知道是否使用

django.contrib.sessions.backends.cache

存储会话真的可以提高网站的性能吗?假设有大约 25,000 个同时用户。每个用户进行许多数据库更改(例如浏览器游戏)。差异是否明显?

2) 再次使用缓存会话时(无 db):如何检查给定用户是否已登录(不允许同一帐户多次登录)?

【问题讨论】:

    标签: python django caching memcached django-sessions


    【解决方案1】:

    1.

    根据我的经验,差异很大。 在您的场景中,每次创建或更改会话时 - 这将生成一个数据库写入。 每次用户访问站点时 - 都会生成数据库读取。 将其移出数据库 - 每个请求至少保存一个查询。

    这个额外的流量,加上您的正常应用流量可能很容易影响您的数据库性能。

    重新。 2.

    即使对于 db 支持的会话,也没有明确的方法来确保用户被记录一次(读取所有会话数据、对其进行解压然后过滤不是一个明确的方法:))

    为此,我可能会使用缓存: 每次用户登录时,检查这里是否有缓存中的键(例如 user:),存储的值将是会话 id,如果当前会话不同,则存储一个 - 使旧会话过期,存储新会话身份证。

    但即使是这个并不总是有效,有时浏览器选项卡/窗口共享相同的 cookie(尤其是当 SESSION_EXPIRE_AT_BROWSER_CLOSE 为 False - 默认时)并且会话完全基于 cookie。

    【讨论】:

    • 我明白了,谢谢你的回答! :) 至于(2)我决定不实施这个。主要是因为在同一个帐户上多次登录不会有问题。还是谢谢!
    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 2023-03-18
    • 2014-07-31
    • 2013-12-13
    • 1970-01-01
    • 2010-09-14
    • 2015-03-13
    • 1970-01-01
    相关资源
    最近更新 更多