Я хочу использовать структуру данных наборов redis для хранения списка подписчиков пользователей, Как я могу выполнить поисковый вызов для извлечения записей из списка на основе размера страницы?Как сделать пейджинг по структуре данных наборов redis?
ответ
В дополнение к тому, что написал @Didier Spezia, я также попытался сохранить последователей в отсортированном наборе.
Если вы хотите их по имени, сохраните их все со счетом 0, а затем используйте ZRANGEBYLEX, чтобы отправить их лексически.
Если вы хотите, чтобы они были добавлены в качестве друзей, используйте отметку времени добавления в качестве оценки и используйте ZRANGE, чтобы отправить их по времени.
[EDIT] oh, еще один вариант поиска, если память вас беспокоит: если идентификаторы являются постоянными целыми числами, вы можете хранить их как двоичные значения в массиве с использованием строкового ключа и размещать его с диапазонами. Он будет очень быстрым и будет иметь фактически 0 служебных данных памяти. Посмотрите на команду BITFIELD. Это может быть очень хорошим прецедентом для него, хотя он не охватывает удаление и поиск, поэтому, если это вызывает беспокойство, это не очень хороший вариант.
Вы можете попытаться использовать команду SSCAN. Не забудьте понять, как работает команда SCAN.
Я слышал, что отсортированные наборы более тяжелые с точки зрения потребления памяти и обработки, поэтому я хотел использовать наборы, исправить меня, если я ошибаюсь. –
Они немного тяжелее, но комплекты также не дешевы. Существует опция конфигурации, которая оптимизирует память для небольших отсортированных наборов, которые могут использовать память до 80%, посмотрите на redis.conf. –