我目前在本地部署我的web服务api时有麻烦。我使用memcached与PHP Memcache扩展。以下是行为:
我有一个登录功能,首先检查用户信息是否在内存中使用以下代码;
$cache = Memcacher::get_instance()->load( 'user.' . $email);
- 如果缓存存在,它将返回变量
$cache
为true
。 如果缓存不存在,那么我用下面的代码将它保存到内存中;
$cache = Memcacher::get_instance()->save( 'user.' . $login['value']['email'], $login);
参数$login
是保存用户信息的关联数组。
保存到内存后,我尝试重新登录。然而,它不持有信息之前,我保存到memcached服务器3-4次。
3-4次登录后,从缓存中成功获取登录信息。
谁能给我解释一下那个奇怪的行为?是否有任何memcached配置变量来防止这种情况?注意:我用sudo service memcached restart
重新启动memcached来刷新内存在Ubuntu
注意:Memcache是一个自定义模块,使用PHP Memcache扩展的set()
和get()
函数
注意:这是Memcacher的源代码
您正在连接一个数组和一个字符串。有时,$login可能不是一个数组,因此您将开始接收您所拥有的信息,因为连接将正常工作。但是如果它是一个数组,您将无法在memcache中保存键。你会收到一个通知,我猜你会忽略的。