我目前在本地部署我的网络服务api时遇到了麻烦。我正在使用带有PHP Memcache扩展的memcached。这是以下行为;
我有一个登录功能,首先使用以下代码检查用户信息是否在内存中;
$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上
注意:Memcacher是一个使用PHP Memcache扩展的set()
和get()
函数的自定义模块
注意:以下是Memcacher
的源代码答案 0 :(得分:1)
您正在使用字符串连接数组。在某些情况下,$ login是一个数组可能不是真的,因此您将开始接收您拥有的信息,因为连接将起作用。但如果它是一个数组,你将无法在memcache中保存密钥。你会收到一个通知,我想你忽略了。