БД пользователей в Redis

134
22 ноября 2018, 14:00

Всем привет, как хранить данные регистрации пользователей в Redis?

База данных пользователей хранится в Redis.
Для каждого пользователя хранятся следующие поля:

  1. Id
  2. name
  3. email
  4. password_hash

Необходимо выполнить авторизацию пользователя по email и паролю (для комбинации email, password_hash получить данные пользователя).

функции на php:

/**
 * Creates new user
 *
 * @param array $user_data          User data contains the following fields:
 *                                      - name
 *                                      - email
 *                                      - password_hash
 *
 * @return string                   Returns ID of created user
 *
 * @throws \UserExistsException     Throws exception if user with this email already exists
 *
 */
function create_user(array $user_data)
{
    // your code here
}
/**
 * Finds user by combination of email and password hash
 *
 * @param string $email
 * @param string $password_hash
 *
 * @return string|null                   Returns ID of user or null if user not found
 */
function authorize_user($email, $password_hash)
{
    // your code here
}

Знаю как сделать форму и отправить данные в PHP функции, но совсем не понимаю как хранить данные в Redis

Answer 1
try {
    $redis = new Redis();
    $redis->connect('localhost', 6379); # Подключаемся
    $redis->select(1); # Выбираем БД №1
} catch(RedisException $e) {
    exit('Connect error');
}

Запись:

$redis->set(intval($redis->get('lastid')), json_encode(array(
    'name' => $name,
    'email' => $email,
    'password_hash' => $password_hash
)));
$redis->incr('lastid');

Последний добавленный юзер:

print_r(json_decode($redis->get($redis->get('lastid')),true));

Список команд: https://redis.io/commands

READ ALSO
Добавление слеша если есть якорь .htaccess

Добавление слеша если есть якорь .htaccess

Как правильно написать регулярное выражение чтобы после якоря если нету слеша то добавляло в любом другом случае убирало? например sitecom/en...

134
Получение ответа с ajax запроса

Получение ответа с ajax запроса

Со страницы indexphp обращаюсь к ajax

138
Как отправлять письма с русского адреса почты через mail в php?

Как отправлять письма с русского адреса почты через mail в php?

У сайта русский домен и я соотсвенно хочу отправлять письма с русского адресаСначало письма вообще не приходили, и тогда я добавил base64 кодировку

171
DateTimePicker yii2 сменился после обновления язык?

DateTimePicker yii2 сменился после обновления язык?

После обновления с версии 14

146