繁体   English   中英

PHP - 什么是会话变量的替代品

[英]PHP - what is an alternative to session variables

我在会话中存储了很多变量,这会产生性能问题。 所以,我被要求将它存储在其他地方,我可以将它存储在数据库中,但这又会很慢。

是否有更好的存储会话变量的替代方案? 全局变量是每个文件/请求。 虽然cookie会向用户打开变量,但不会保留服务器端。

提前感谢您的回答!

考虑像这样的半持久数据的memcached 将缓存键存储在$_SESSION ,然后使用它来获取缓存的数据。

由于memcached所有内容缓存在内存中(并且严格来说是键值存储),因此它比数据库更快。 它对于像会话这样的东西来说有点理想,因为如果你碰巧丢失了缓存的数据,那么就不会丢失任何严重的东西(用户只是意外地被注销)。

事实上,PHP Memcache实现提供了一个会话处理程序 (参见示例#2),它可以透明地为您处理会话,而无需您真正需要对代码进行任何修改。

php会话可以配置为以多种方式工作。 如果服务器上有足够的可用内存,可以从内存缓存中运行它。 这将是高性能

您也可以使用数据库来存储会话信息,但正如您所说,这可能很慢。

为什么它目前会产生性能问题? 是否有大量会话被创建或者您是否在会话中存储了大量数据?

这取决于有多少变量“很多”? rails的默认会话存储使用cookie,这通常对我来说足够了。 如果您担心暴露变量,cookie会被加密。 你必须拥有服务器端吗? 使用html5,您可以使用localStorage选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM