2016-12-28 1 views

ответ

3

В дополнение к тому, что написал @Didier Spezia, я также попытался сохранить последователей в отсортированном наборе.

Если вы хотите их по имени, сохраните их все со счетом 0, а затем используйте ZRANGEBYLEX, чтобы отправить их лексически.

Если вы хотите, чтобы они были добавлены в качестве друзей, используйте отметку времени добавления в качестве оценки и используйте ZRANGE, чтобы отправить их по времени.

[EDIT] oh, еще один вариант поиска, если память вас беспокоит: если идентификаторы являются постоянными целыми числами, вы можете хранить их как двоичные значения в массиве с использованием строкового ключа и размещать его с диапазонами. Он будет очень быстрым и будет иметь фактически 0 служебных данных памяти. Посмотрите на команду BITFIELD. Это может быть очень хорошим прецедентом для него, хотя он не охватывает удаление и поиск, поэтому, если это вызывает беспокойство, это не очень хороший вариант.

+0

Я слышал, что отсортированные наборы более тяжелые с точки зрения потребления памяти и обработки, поэтому я хотел использовать наборы, исправить меня, если я ошибаюсь. –

+1

Они немного тяжелее, но комплекты также не дешевы. Существует опция конфигурации, которая оптимизирует память для небольших отсортированных наборов, которые могут использовать память до 80%, посмотрите на redis.conf. –

2

Вы можете попытаться использовать команду SSCAN. Не забудьте понять, как работает команда SCAN.