{
  "schema_version": 2,
  "id": "commands/smembers",
  "title": "SMEMBERS",
  "url": "https://redis.io/docs/latest/commands/smembers/",
  "summary": "Returns all members of a set.",
  "since": "1.0.0",
  "tags": [
    "docs",
    "develop",
    "stack",
    "oss",
    "rs",
    "rc",
    "oss",
    "kubernetes",
    "clients"
  ],
  "last_updated": "2026-09-18T09:47:41+01:00",
  "page_type": "content",
  "content_hash": "67bf679226d33204bc9a5b00fcdf8a5d43143e1f0371213655d506e6be6c25e8",
  "sections": [
    {
      "id": "required-arguments",
      "title": "Required arguments",
      "role": "content",
      "text": "<details open><summary><code>key</code></summary>\n\nThe name of the key that holds the set.\n\n</details>"
    },
    {
      "id": "examples",
      "title": "Examples",
      "role": "example",
      "text": "Foundational: Retrieve all members of a set using SMEMBERS (returns unordered collection, useful for iterating all set members)\n\n**Difficulty:** Beginner\n\n**Commands:** SADD, SMEMBERS\n\n**Complexity:**\n- SADD: O(1)\n- SMEMBERS: O(N)\n\n**Available in:** Redis CLI, C#, Go, Java (Asynchronous - Lettuce), Java (Reactive - Lettuce), Java (Synchronous - Jedis), JavaScript (Node.js), JavaScript (Node.js), PHP, Python, Ruby, Rust (Asynchronous), Rust (Synchronous)\n\n##### Redis CLI\n\n[code example]\n\n##### C#\n\n[code example]\n\n##### Go\n\n[code example]\n\n##### Java (Asynchronous - Lettuce)\n\n[code example]\n\n##### Java (Reactive - Lettuce)\n\n[code example]\n\n##### Java (Synchronous - Jedis)\n\n[code example]\n\n##### JavaScript (Node.js)\n\n[code example]\n\n##### JavaScript (Node.js)\n\n[code example]\n\n##### JavaScript (Node.js)\n\n[code example]\n\n##### JavaScript (Node.js)\n\n[code example]\n\n##### PHP\n\n[code example]\n\n##### Python\n\n[code example]\n\n##### Ruby\n\n[code example]\n\n##### Rust (Asynchronous)\n\n[code example]\n\n##### Rust (Synchronous)\n\n[code example]"
    },
    {
      "id": "redis-software-and-redis-cloud-compatibility",
      "title": "Redis Software and Redis Cloud compatibility",
      "role": "content",
      "text": "| Redis<br />Software | Redis<br />Cloud | <span style=\"min-width: 9em; display: table-cell\">Notes</span> |\n|:----------------------|:-----------------|:------|\n| <span title=\"Supported\">&#x2705; Standard</span><br /><span title=\"Supported\"><nobr>&#x2705; Active-Active</nobr></span> | <span title=\"Supported\">&#x2705; Standard</span><br /><span title=\"Supported\"><nobr>&#x2705; Active-Active</nobr></span> |  |"
    },
    {
      "id": "return-information",
      "title": "Return information",
      "role": "returns",
      "text": "**RESP2:**\n\n[Array reply](../../develop/reference/protocol-spec#arrays): an array with all the members of the set.\n\n**RESP3:**\n\n[Set reply](../../develop/reference/protocol-spec#sets): a set with all the members of the set."
    }
  ],
  "examples": [
    {
      "id": "examples-ex0",
      "language": "plaintext",
      "code": "redis> SADD myset \"Hello\"\n(integer) 1\nredis> SADD myset \"World\"\n(integer) 1\nredis> SMEMBERS myset\n1) \"Hello\"\n2) \"World\"",
      "section_id": "examples"
    },
    {
      "id": "examples-ex1",
      "language": "csharp",
      "code": "long sMembersResult1 = db.SetAdd(\n            \"myset\", [\"Hello\", \"World\"]\n        );\n        Console.WriteLine(sMembersResult1); // >>> 2\n\n        RedisValue[] sMembersResult2 = db.SetMembers(\"myset\");\n        Array.Sort(sMembersResult2);\n        Console.WriteLine(string.Join(\", \", sMembersResult2));\n        // >>> Hello, World",
      "section_id": "examples"
    },
    {
      "id": "examples-ex2",
      "language": "go",
      "code": "sAddResult, err := rdb.SAdd(ctx, \"myset\", \"Hello\", \"World\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(sAddResult) // >>> 2\n\n\tsMembersResult, err := rdb.SMembers(ctx, \"myset\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(sMembersResult) // >>> [Hello World]",
      "section_id": "examples"
    },
    {
      "id": "examples-ex3",
      "language": "java",
      "code": "CompletableFuture<Void> smembers = asyncCommands.sadd(\"myset\", \"Hello\", \"World\").thenCompose(r -> {\n                return asyncCommands.smembers(\"myset\");\n            })\n                    .thenAccept(System.out::println)\n                    // >>> [Hello, World]\n                    .toCompletableFuture();",
      "section_id": "examples"
    },
    {
      "id": "examples-ex4",
      "language": "java",
      "code": "Mono<Void> smembers = reactiveCommands.sadd(\"myset\", \"Hello\", \"World\").doOnNext(r -> {\n                System.out.println(r); // >>> 2\n            }).flatMap(r -> reactiveCommands.smembers(\"myset\").collectList()).doOnNext(r -> {\n                System.out.println(r); // >>> [Hello, World]\n            }).then();",
      "section_id": "examples"
    },
    {
      "id": "examples-ex5",
      "language": "java",
      "code": "long sMembersResult1 = jedis.sadd(\"myset\", \"Hello\", \"World\");\n        System.out.println(sMembersResult1); // >>> 2\n\n        Set<String> sMembersResult2 = jedis.smembers(\"myset\");\n        System.out.println(sMembersResult2.stream().sorted().collect(toList()));\n        // >>> [Hello, World]",
      "section_id": "examples"
    },
    {
      "id": "examples-ex6",
      "language": "javascript",
      "code": "const res4 = await client.sAdd('myset', ['Hello', 'World']);\nconsole.log(res4);  // 2\n\nconst res5 = await client.sMembers('myset')\nconsole.log(res5);  // ['Hello', 'World']",
      "section_id": "examples"
    },
    {
      "id": "examples-ex7",
      "language": "javascript",
      "code": "const res4 = await redis.sadd('myset', 'Hello', 'World');\nconsole.log(res4); // >>> 2\n\nconst res5 = await redis.smembers('myset');\nconsole.log(res5); // >>> ['Hello', 'World']",
      "section_id": "examples"
    },
    {
      "id": "examples-ex8",
      "language": "javascript",
      "code": "const res4 = await client.sAdd('myset', ['Hello', 'World']);\nconsole.log(res4);  // 2\n\nconst res5 = await client.sMembers('myset')\nconsole.log(res5);  // ['Hello', 'World']",
      "section_id": "examples"
    },
    {
      "id": "examples-ex9",
      "language": "javascript",
      "code": "const res4 = await redis.sadd('myset', 'Hello', 'World');\nconsole.log(res4); // >>> 2\n\nconst res5 = await redis.smembers('myset');\nconsole.log(res5); // >>> ['Hello', 'World']",
      "section_id": "examples"
    },
    {
      "id": "examples-ex10",
      "language": "php",
      "code": "$res4 = $r->sadd('myset', ['Hello', 'World']);\n        echo $res4 . PHP_EOL;\n        // >>> 2\n\n        $res5 = $r->smembers('myset');\n        sort($res5);\n        echo json_encode($res5) . PHP_EOL;\n        // >>> [\"Hello\",\"World\"]",
      "section_id": "examples"
    },
    {
      "id": "examples-ex11",
      "language": "python",
      "code": "res4 = r.sadd(\"myset\", \"Hello\", \"World\")\nprint(res4)  # >>> 2\n\nres5 = r.smembers(\"myset\")\nprint(res5)  # >>> {'Hello', 'World'}",
      "section_id": "examples"
    },
    {
      "id": "examples-ex12",
      "language": "ruby",
      "code": "res4 = r.sadd('myset', ['Hello', 'World'])\nputs res4 # >>> 2\n\nres5 = r.smembers('myset')\nputs res5.inspect # >>> [\"Hello\", \"World\"]",
      "section_id": "examples"
    },
    {
      "id": "examples-ex13",
      "language": "rust",
      "code": "if let Ok(res4) = r.sadd(\"myset\", &[\"Hello\", \"World\"]).await {\n            let res4: i32 = res4;\n            println!(\"{res4}\"); // >>> 2\n        }\n\n        if let Ok(res5) = r.smembers(\"myset\").await {\n            let res5: HashSet<String> = res5;\n            println!(\"{res5:?}\"); // >>> {\"Hello\", \"World\"}\n        }",
      "section_id": "examples"
    },
    {
      "id": "examples-ex14",
      "language": "rust",
      "code": "if let Ok(res4) = r.sadd(\"myset\", &[\"Hello\", \"World\"]) {\n            let res4: i32 = res4;\n            println!(\"{res4}\"); // >>> 2\n        }\n\n        if let Ok(res5) = r.smembers(\"myset\") {\n            let res5: HashSet<String> = res5;\n            println!(\"{res5:?}\"); // >>> {\"Hello\", \"World\"}\n        }",
      "section_id": "examples"
    }
  ]
}
