моя среда разработки — это PHP-фреймворк Laravel, использующий клиентскую библиотеку predis.
Я, вероятно, упускаю из виду некоторые аспекты, и я новичок в Redis, однако мне кажется, что мне нужен хеш-тип данных для хранения пользовательской информации, например:
$redis->hmset('users', array('id' : 1, 'username' => 'ali', 'dob' => '29/06/89', 'email' => '[email protected]'));
Мой вопрос, однако, с вышеизложенным, является ли это правильным способом хранения всех пользователей с их информацией в одном хэше, чтобы я мог получить всех пользователей вместе и при необходимости получить отдельного пользователя по идентификатору, так как мне нужно отобразить всех пользователей в таблица на внешнем интерфейсе, но иногда необходимо захватить отдельного пользователя по его идентификатору.
Если нет, и мне нужно хранить каждого пользователя в отдельном хеше, как показано ниже, с указанным там идентификатором как частью ключа, как мне получить всех пользователей за один раз и заказать?
$redis->hmset('users:{id}', array('name' => 'ali', 'dob' => '29/06/89', 'email' => '[email protected]'));
Большое спасибо за любую помощь.
Как я уже сказал, я дал каждому пользователю идентификатор и сохранил их в формате users:{id}
,
Затем вы захотите сохранить все идентификаторы пользователя в наборе, или, возможно, отсортированный набор или список, если порядок имеет значение для вас, так что-то вроде
$redis->sadd('users', {user's id});
Это псевдо-код для хранения в наборе, потому что я не уверен в точном форматировании predis.
Затем, когда вы хотите получить всех пользователей, вы сначала делаете $redis->smembers('users')
чтобы получить все идентификаторы пользователей, а затем выполнить итерацию по этим идентификаторам, чтобы получить все хеши пользователей.
Других решений пока нет …