Django 1.4提供了几种维护django sessions的方法:
我对使用的看法:
i)仅限缓存:不可取,用户会话可能会从memcache中清除。
ii)Db +缓存(cached_db
):优先,简单且安全的解决方案。
iii)签名的cookie会话:优先,没有数据库命中。
假设会话数据非常小,即将其存储在cookie中没有问题。在数据库+ memcache驱动的会话引擎上使用签名cookie是否有任何性能优势?对于N个并发新用户,将保存N个数据库命中的顺序。这将减少数据库服务器每单位时间必须处理的总查询。
更新:我们发现redis或aerospike是django真正强大且高吞吐量的会话后端。我们使用redis
作为会话
后端
答案 0 :(得分:5)
您必须能够处理N个并发查询(N - 并发新查询) 用户)。
您只能看到非常大的比例的差异。你必须是悲观主义者(服务器崩溃,糟糕的破坏,亚马逊保护),你的数据库必须能够在高峰时间处理所有用户。
我使用redis后端(定期保存到磁盘),可以切换到一组memcached服务。
http://www.icis.com/blogs/icis-chemicals-confidential/files/2011/10/19/goodcheapfast.jpg