Redis - проверьте, существует ли ключ, используя predis

Используя 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}?


person BugHunterUK    schedule 04.02.2016    source источник
comment
Вы можете только проверить, существует ли key, а не value. Вы не можете проверить value без key   -  person moh_abk    schedule 04.02.2016


Ответы (1)


Да. Поскольку ваш ключ — это, по сути, просто имя пользователя, вы можете просто увидеть, существует ли ключ. Для этого вы можете использовать EXISTS Redis:

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

Разница в скорости между ними будет очень и очень небольшой, но использование exists сделает ваш код немного чище.

person Eli    schedule 04.02.2016
comment
Спасибо. В итоге я решил свою проблему по-другому, так как мне также нужно было проверить, существуют ли и электронная почта, и имя пользователя (отдельно). Я использовал набор для электронной почты и набор для имени пользователя, а затем использовал их для проверки «Спасибо». - person BugHunterUK; 05.02.2016