我一直试图了解PHP(或其他语言,实际上,我认为其原理是相同的)在哪里保持会话数据服务器端。
我读了this question和this question,它们似乎都表明它只是在/ tmp文件夹中创建普通文件,这些文件的名称与存储在客户端cookie中的会话ID相匹配。
但这对我来说似乎有点奇怪......那些拥有数百万并发用户的高流量网站呢......他们真的只有一个充满会话文件的巨型文件夹吗?没有涉及数据库?
答案 0 :(得分:3)
即使在较小的网站上,我也不知道很多人将文件放在目录中以进行会话存储。它很慢,会话数据可能是您需要快速和频繁访问的内容,具体取决于站点。
通常,将使用像Redis这样的内存数据存储。许多这类数据库支持跨多个主机的基本分片,以及简单的复制形式,可以扩展会话存储。
当您达到数百万并发用户的规模时,您的特定需求会变得更加放大。您需要在会话中存储多少数据?这些数据可以尽最大努力复制给其他人,还是必须是原子的?在这一点上,每个人都有点不同,但原则是相同的。可从任何需要的地方访问快速数据。尽量少存储。
答案 1 :(得分:1)
默认会话位于文件系统中,但您可以将应用配置为将会话存储在内存缓存中,如Memcached或Redis。那么您可以为会话提供许多Web服务器和许多缓存服务器。