明显的区别在于,当存储在memcache(d)
时,数据可以通过系统获得。会话存储每个用户的数据,理论上可以使用session_id()
与更多用户共享此数据。
然而,在性能,速度和内存使用方面 - 有区别吗?
答案 0 :(得分:5)
默认情况下,PHP会话存储在文件系统中。您可以修改此行为,以便将它们保存在数据库中,或保存在memcached中。
因此,就性能而言,memcached 通常比文件系统更快。 这显然取决于您的环境。
答案 1 :(得分:2)
苹果和橘子。他们完成两件完全不同的事情。你真正的问题是文件存储与memcache。理论上,您可以在memcache中存储会话信息,而不是基于文件的存储。然后会话的性能与直接将值推送到memcache相同。
在所有条件相同的情况下,memcache的性能远远优于文件缓存。就内存而言,当您读取文件以获取数据(在本例中为会话文件)时,无论如何它都会进入内存,因此它不会节省任何空间。实际上,如果apache发生多个请求,则不同的工作进程可能需要读取相同的会话文件 - 每个使用自己的内存块直到获得工作进程。使用memcache,这不会发生。
答案 2 :(得分:0)
好吧,你可以简单地为$_SESSION
使用memcache。这肯定更快,因为它不需要大量调用PHP API,但它直接转向C API。
虽然性能奖金很小,但PHP确实不是那么慢。
如果您要将memcache与文件系统会话进行比较:使用memcache。真的,你应该,因为它只是将它们存储在内存中而不是将它们存储在文件系统中。快得多。当然,如果memcache服务器超载,您可能会丢失会话数据。内存使用memcache当然会高于文件系统的替代方案。
答案 3 :(得分:0)
会话存储在文件或数据库中。 Memcache存储在内存中以便更快地访问。