ключи или список для моего redis datamodel? - PullRequest
0 голосов
/ 26 января 2012

Я создаю модель данных своего приложения и, в основном, для данного пользователя я хотел бы сохранить список его / ее друзей и статус каждого из них (если они приняли запрос на дружбуили если они еще не сделали)

Я получаю несколько ключей: (по одному на каждого друга Тома)

friends:tom:status:jessica => joined
friends:tom:status:stephan => joined
friends:tom:status:hubert => pending
friends:tom:status:peter => declined

Это лучший способ справиться с этим или должен быть списокиспользуется другим способом?

Ответы [ 2 ]

2 голосов
/ 27 января 2012

Вы можете использовать для этого упорядоченный набор.

У каждого статуса есть оценка, связанная с ним, присоединяется 1, ожидает 2, отклоняется 3

zadd user1_friends 1 userid 1 userid 2 userid

, после чего вы можете легко получитьвсе пользователи по категориям

zscore user1_friends 1

или вы можете разделить на 3 отдельных набора

sadd user1_joined userid1
sadd user1_pending userid3

В зависимости от того, что вы хотите сделать, любой из них будет работать

2 голосов
/ 26 января 2012

Вы можете попытаться использовать, например, хэш структуру, где ключ хеша будет friends:tom:status, поле будет представлять имя / идентификатор друга, а значение будет представлять его статус.Структура хэша более эффективна для памяти , чем выделенные ключи в целом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...