[英]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.