diff --git a/README.md b/README.md
index 6cd0a48..2918ceb 100644
--- a/README.md
+++ b/README.md
@@ -69,6 +69,7 @@ Redis command                                    | Description
 **SETEX** *key* *seconds* *value*                | Sets the value and expiration of a key
 **SETNX** *key* *value*                          | Sets key to hold value if key does not exist
 **SADD** *key* *member* *[member ...]*           | Adds one or more members to a set
+**SDIFF** *key* *key* *[key ...]*                | Returns the members of the set resulting from the difference between the first set and all the successive sets.
 **SISMEMBER** *key* *member*                     | Determines if a member is in a set
 **SMEMBERS** *key*                               | Gets all the members in a set
 **SUNION** *key* *[key ...]*                     | Returns the members of the set resulting from the union of all the given sets.
diff --git a/src/M6Web/Component/RedisMock/RedisMock.php b/src/M6Web/Component/RedisMock/RedisMock.php
index 6534343..a89b76e 100644
--- a/src/M6Web/Component/RedisMock/RedisMock.php
+++ b/src/M6Web/Component/RedisMock/RedisMock.php
@@ -333,6 +333,21 @@ public function sadd($key, $members)
 
     }
 
+    public function sdiff($key)
+    {
+        $this->stopPipeline();
+        $keys = is_array($key) ? $key : func_get_args();
+        $result = [];
+        foreach ($keys as $key) {
+            $result[] = $this->smembers($key);
+        }
+        $result = array_values(array_diff(...$result));
+
+        $this->restorePipeline();
+
+        return $this->returnPipedInfo($result);
+    }
+
     public function smembers($key)
     {
         if (!isset(self::$dataValues[$this->storage][$key]) || $this->deleteOnTtlExpired($key)) {
diff --git a/tests/units/RedisMock.php b/tests/units/RedisMock.php
index af77f6b..db62e7b 100644
--- a/tests/units/RedisMock.php
+++ b/tests/units/RedisMock.php
@@ -470,6 +470,18 @@ public function testSCard()
                 ->isEqualTo(0);
     }
 
+    public function testSDiff()
+    {
+        $redisMock = new Redis();
+        $redisMock->sadd('key1', 'a', 'b', 'c', 'd');
+        $redisMock->sadd('key2', 'c');
+        $redisMock->sadd('key3', 'a', 'c', 'e');
+
+        $this->assert
+            ->array($redisMock->sdiff('key1', 'key2', 'key3'))
+            ->isEqualTo(['b', 'd']);
+    }
+
     public function testSAddSMembersSIsMemberSRem()
     {
         $redisMock = new Redis();