How to Use SREM Command in Redis to Remove Set Members
Use the
SREM command in Redis to remove one or more specified members from a set stored at a key. It returns the number of members that were removed successfully. If a member does not exist in the set, it is simply ignored.Syntax
The SREM command syntax is:
SREM key member [member ...]
Here, key is the name of the set, and member is one or more elements you want to remove from that set.
The command returns the number of members that were actually removed.
redis
SREM myset member1 member2
Example
This example shows how to create a set, add members, then remove some members using SREM. It demonstrates the return value indicating how many members were removed.
redis
127.0.0.1:6379> SADD myset apple banana cherry (integer) 3 127.0.0.1:6379> SREM myset banana orange (integer) 1 127.0.0.1:6379> SMEMBERS myset 1) "apple" 2) "cherry"
Output
(integer) 3
(integer) 1
1) "apple"
2) "cherry"
Common Pitfalls
Common mistakes when using SREM include:
- Trying to remove members from a key that does not exist (returns 0, no error).
- Passing members that are not in the set (those members are ignored).
- Using
SREMon a key that is not a set (returns an error).
Always check the return value to know how many members were removed.
redis
127.0.0.1:6379> SREM unknownset member (integer) 0 127.0.0.1:6379> SET notaset "hello" OK 127.0.0.1:6379> SREM notaset member (error) WRONGTYPE Operation against a key holding the wrong kind of value
Output
(integer) 0
OK
(error) WRONGTYPE Operation against a key holding the wrong kind of value
Quick Reference
| Command | Description | Return Value |
|---|---|---|
| SREM key member | Removes specified member(s) from the set stored at key | Number of members removed |
| SREM key member1 member2 ... | Removes multiple members at once | Number of members removed |
| SREM on non-existing key | No error, returns 0 | 0 |
| SREM on wrong type key | Returns error | Error |
Key Takeaways
Use SREM to remove one or more members from a Redis set by specifying the key and members.
SREM returns the count of members actually removed, ignoring members not present in the set.
Removing members from a non-existing set returns 0 without error.
Using SREM on a key holding a non-set value causes an error.
Always check the return value to confirm which members were removed.