Redis sets are collections of unique strings that are not sorted. They are implemented using a hash table, which allows for extremely quick membership checks and element additions/removals. Redis sets are an advanced data structure that can be used for many things, including tracking unique items, representing relations, and performing set operations.

**1. Size Limitation **

A Redis set can have a maximum of 4,294,967,295 members. This is a very huge number, and you are unlikely to ever need to keep a set of this size.

**2. Create a Set**

In Redis, the **SADD** command is used to add one or more members to a set. If a member of the set already exists, it is ignored. If the key does not already exist, a new set is formed before the requested members are added.

`127.0.0.1:6379> `**SADD testset empcode1 empcode2**
(integer) 2
127.0.0.1:6379>

**3. Get all the members in a set**
In Redis, the **SMEMBERS** command returns all members of a set. If the key does not exist, the function returns a new empty set.

`127.0.0.1:6379> `**SMEMBERS testset**
1) "empcode1"
2) "empcode2"
127.0.0.1:6379>

**4. Get the number of members in a set**

In Redis, the **SCARD** command is used to return the number of members in a set.

```
127.0.0.1:6379> SCARD testset
(integer) 2
127.0.0.1:6379>
```

So, in the previous result, we can see that there are two members in a set called testset.

**5. Check if a given value is a member of a set**

The **SISMEMBER** command in Redis is used to check whether a member exists in a set. If the key does not exist, a value of 0 is returned.

`127.0.0.1:6379> `**SISMEMBER testset empcode2**
(integer) 1
127.0.0.1:6379>

In the above example, we tried to find the member "empcode2" in a set. We got a value of 1, indicating that the member "empcode2" exists in the set "testset."

**6. Remove one or more members from a set**

In Redis, the **SREM** command is used to delete one or more members from a set. The member can be ignored if it does not exist in the set. If the key does not exist, the set is considered empty, and this operation returns 0.

`127.0.0.1:6379> `**SREM testset empcode1**
(integer) 1
127.0.0.1:6379> **SMEMBERS testset**
1) "empcode2"
127.0.0.1:6379>

We removed the element "empcode1" from the set "testset" in the above example.

## Comments