Это было бы легко в большинстве баз данных, но не знаю, как это сделать в Redis. Итак, вот как я добавляю элементы в набор:
redis.sadd("usersRandom", userID);
redis.hmset("users:"+userID, "socketID", socket.id, "hangoutId",hangoutIds, "language",languageName);
- Набор
usersRandom
— это набор пользователей - Каждый
user
в этом наборе имеет три хранящихся в нем хеш-значения —socketID
,hangoutId
,language
.
Я хотел бы выполнить это:
redis.spop("usersRandom");
ОДНАКО, я хотел бы выводить только пользователей с определенным значением language
.
Я придумал два способа сделать это:
Возвращаем всех членов набора
usersRandom
и затем сопоставляем их себе по ключуlanguage
— тогда поп.Создавайте разные наборы на основе
languages
. Таким образом, у меня было бы множество наборов, таких какusersRandom_english
,usersRandom_spanish
(с этими именами переменных можно было бы немного поработать). Это кажется более запутанным, но, возможно, это лучший способ с Redis.
Есть лучший способ сделать это?