【问题标题】:Redis - Check if key exists using predisRedis - 使用 predis 检查密钥是否存在
【发布时间】:2016-05-14 00:08:04
【问题描述】:

使用predis是否可以检查密钥是否存在?

我的users数据存储如下:

public function createUser($email, $password, $username)
{
    return $this->predis->hMset("user:{$username}", [
        'email' => $email,
        'password' => $password,
        'username' => $username
    ]);
}

现在,当我检查用户是否存在时,我会执行以下操作:

public function checkUserExists($username)
{
    return $this->predis->hExists("user:{$username}", 'username');
}

是否可以检查用户是否存在而不必检查密钥是否存在?例如,只需检查 user:{$username}?

【问题讨论】:

  • 您只能检查key 是否存在,而不能检查value。如果没有key,您将无法检查value

标签: php redis predis


【解决方案1】:

是的。由于您的密钥本质上只是用户名,因此您可以查看密钥是否存在。您可以为此使用 Redis 的 EXISTS

public function checkUserExists($username)
{
    return $this->predis->exists("user:{$username}");
}

两者之间的速度差异会非常非常小,但是使用exists会让你的代码更干净一些。

【讨论】:

  • 谢谢。我最终以不同的方式解决了我的问题,因为我还需要检查电子邮件和用户名是否已经存在(单独)。我使用了一组电子邮件,一组用户名,然后使用存在来检查谢谢。
猜你喜欢
  • 2020-08-19
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 2015-06-07
  • 2014-09-14
  • 1970-01-01
相关资源
最近更新 更多