2016-02-04 1 views
0

Использование predis можно ли проверить наличие ключа?Redis - проверить, существует ли ключ с использованием 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}?

+0

Вы можете проверить только, существует ли 'ключ', а не' значение'. Вы не можете проверить 'значение' без' key' –

ответ

2

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

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

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

+0

Спасибо. Я решил решить свою проблему по-другому, так как мне также нужно было проверить, существуют ли как электронная почта, так и имя пользователя (отдельно). Я использовал набор для электронных писем, а набор для имени пользователя, а затем используется для проверки Спасибо. – BugHunterUK