Removes and returns one or more random members from the set stored at key.
Usage
await redis.spop(key);
await redis.spop(key, count);
Parameters
The number of members to pop. If not specified, one member is popped
Response
- When
count is not specified: Returns the removed member, or null if the set is empty
- When
count is specified: Returns an array of removed members (may be empty if the set is empty)
Examples
Pop a single member
await redis.sadd("myset", "one", "two", "three");
const member = await redis.spop("myset");
console.log(member); // "one" (or "two" or "three")
Pop multiple members
await redis.sadd("numbers", "1", "2", "3", "4", "5");
const members = await redis.spop("numbers", 3);
console.log(members); // ["1", "3", "5"] (random selection)
Pop from empty set
const member = await redis.spop("nonexistent");
console.log(member); // null
Random prize selection
await redis.sadd("prizes", "car", "bike", "laptop", "phone");
const winner = await redis.spop("prizes");
console.log(`Winner gets: ${winner}`);
Pop more members than exist
await redis.sadd("small", "a", "b");
const members = await redis.spop("small", 10);
console.log(members); // ["a", "b"] (returns all available members)