2

我目前在本地部署我的 Web 服务 api 时遇到问题。我正在使用带有 PHP Memcache 扩展的 memcached。这是以下行为;

我有一个登录功能,首先使用以下代码检查用户信息是否在内存中;

$cache = Memcacher::get_instance()->load( 'user.' . $email);
  • 如果缓存存在,那么它将返回变量$cachetrue.
  • 如果缓存不存在,那么我将使用以下代码将其保存到内存中;

    $cache = Memcacher::get_instance()->save( 'user.' . $login['value']['email'], $login);

该参数$login是一个包含用户信息的关联数组。

将其保存到内存后,我尝试重新登录。但是,在我保存到 memcached 服务器 3-4 次之前,它不保存信息。

3-4登录后,我成功从缓存中获取登录信息。

谁能解释我这种奇怪的行为?是否有任何 memcached 配置变量来防止这种情况?

注意:我sudo service memcached restart 在 Ubuntu 上通过重新启动 memcached 来刷新内存

注意:Memcacher 是一个使用 PHP Memcache 扩展set()get()功能的自定义模块

注意:这是Memcacher的源代码

4

1 回答 1

1

您正在将数组与字符串连接起来。在某些情况下,$login 可能不是一个数组,因此您将开始接收您拥有的信息,因为串联将起作用。但是如果是数组,就无法将key保存在memcache中。你会收到一个通知,我猜你忽略了。

于 2013-03-30T16:36:20.513 回答