Как правильно вытащить данные в redis? Всем привет. кто знает как правильно вытащить данные в nosql Redis. Так Я создаю ключ user в нем значение guid которое содержит массив.$this->hmset('users', Guid::getGuid(), json_encode([ 'name' => 'username', 'email' => 'useremail', 'password' => password_hash('userpassword', PASSWORD_DEFAULT) ]) ); А как получить и сравнить - типа существует пользователь или нет Такой способ работает но правильно ли вытаскивать все данные из таблицы что бы сравнить их? Ведь их может быть тысячи.$data = $this->hgetall('users');//Получаем все данные из ключа 'users' foreach ($data as $key => $value) { if(json_decode($value, true)['name']=='username'){//Проверяем на совпадение print_r('Пользователь найден'); } } Спасибо.
Для получения и сравнения данных в Redis, можно воспользоваться командой HGET для получения конкретного поля из хэша. В вашем случае, чтобы проверить существует ли пользователь с определенным юзернеймом, можно сделать следующим образом:
$userExists = false; $users = $this->hgetall('users'); // Получаем все данные из хэша 'users' foreach ($users as $key => $userData) { $userData = json_decode($userData, true); // Декодируем JSON данные if ($userData['name'] == 'username') { // Проверяем на совпадение имени пользователя $userExists = true; break; } } if ($userExists) { print_r('Пользователь найден'); } else { print_r('Пользователь не найден'); }
Этот способ более эффективен, так как вам не нужно получать все данные из хэша, а только конкретное поле, которое вам нужно проверить.
Для получения и сравнения данных в Redis, можно воспользоваться командой HGET для получения конкретного поля из хэша. В вашем случае, чтобы проверить существует ли пользователь с определенным юзернеймом, можно сделать следующим образом:
$userExists = false;$users = $this->hgetall('users'); // Получаем все данные из хэша 'users'
foreach ($users as $key => $userData) {
$userData = json_decode($userData, true); // Декодируем JSON данные
if ($userData['name'] == 'username') { // Проверяем на совпадение имени пользователя
$userExists = true;
break;
}
}
if ($userExists) {
print_r('Пользователь найден');
} else {
print_r('Пользователь не найден');
}
Этот способ более эффективен, так как вам не нужно получать все данные из хэша, а только конкретное поле, которое вам нужно проверить.