Вы можете использовать для этого упорядоченный набор.
У каждого статуса есть оценка, связанная с ним, присоединяется 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
В зависимости от того, что вы хотите сделать, любой из них будет работать