Как правильно вытащить данные в 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('Пользователь найден');
}
}
Спасибо.

21 Авг 2019 в 06:32
279 +1
0
Ответы
1

Для получения и сравнения данных в 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('Пользователь не найден');
}

Этот способ более эффективен, так как вам не нужно получать все данные из хэша, а только конкретное поле, которое вам нужно проверить.

20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 888 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир