Php 谷歌应用引擎memcached登录
我一直在使用GAE构建这个网站,并围绕一个memcached登录系统设计它(基于一个小的google搜索说memcached比session更好) memcached似乎全局存储其变量。所以现在当我在一台计算机上登录时,如果我转到另一台计算机,它会显示为已登录Php 谷歌应用引擎memcached登录,php,google-app-engine,login,memcached,Php,Google App Engine,Login,Memcached,我一直在使用GAE构建这个网站,并围绕一个memcached登录系统设计它(基于一个小的google搜索说memcached比session更好) memcached似乎全局存储其变量。所以现在当我在一台计算机上登录时,如果我转到另一台计算机,它会显示为已登录 $user = new Memcached(); //inputs and database query omitted //$row is an array with user's data $user->setMulti
$user = new Memcached();
//inputs and database query omitted
//$row is an array with user's data
$user->setMulti(['id' => $row['userID'], 'email' => $row['email'], 'password' => $row['password'], 'fname' => $row['fName'], 'lname'=>$row['lName'], 'type'=>$row['userType']], 3000);
在每一个页面上,我都会像这样检索登录数据
$user = new Memcached();
$id=$user->get('id');
$email=$user->get('email');
$fname=$user->get('fname');
$lname=$user->get('lname');
$type=$user->get('type');
有没有办法防止这些登录成为全球性的?或者我必须将所有内容都更改为会话吗?Memcache由所有实例和每个实例中的所有请求共享。此外,Memcache可以随时清除。你的用户不会喜欢被随机扔出你的应用程序。Memcache不适合用于登录目的 您需要使用会话。每个会话都链接到一个用户
顺便说一下,在Java运行时中,会话存储在Memcache中,它们也由数据存储支持。我没有在PHP运行时文档中看到它,但很可能实现是相同的。memcache行为是预期的-所有实例共享相同的: 注意:缓存是全局的,并且在应用程序的各个应用程序中共享 前端、后端及其所有模块/版本 事实上,如果您想要每个用户登录,您必须使用会话服务