2012-01-26 1 views
0

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

Я в конечном итоге с несколькими ключами (один для каждого друга томом)

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

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

+0

Это для одного пользователя или нескольких –

+0

@GaneshKumar это для нескольких пользователей – Luc

ответ

2

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

2

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

У каждого состояния есть оценка, связанная с ним, присоединился к 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 

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