Lux Docs

Build on Lux without guessing.

Lux Cloud + OSS core

Product docs for the Lux runtime: tables, cache, vectors, realtime, time series, auth, HTTP, SDK, CLI, and self-hosting.

Sets

Sets are unordered collections of unique strings. They support O(1) membership checks and set-theoretic operations like union, intersection, and difference.

SADD / SREM / SMEMBERS

Add members to a set, remove members, or retrieve all members. SADD ignores members that already exist.

Syntax
SADD key member [member ...]
SREM key member [member ...]
SMEMBERS key
Example
> SADD tags:post:1 "rust" "database" "oss"
(integer) 3
> SADD tags:post:1 "rust"
(integer) 0
> SREM tags:post:1 "oss"
(integer) 1
> SMEMBERS tags:post:1
1) "rust"
2) "database"

SISMEMBER / SMISMEMBER / SCARD

Check if one or more members exist in a set, or get the total number of members.

Example
> SISMEMBER tags:post:1 "rust"
(integer) 1
> SISMEMBER tags:post:1 "python"
(integer) 0
> SMISMEMBER tags:post:1 "rust" "python" "database"
1) (integer) 1
2) (integer) 0
3) (integer) 1
> SCARD tags:post:1
(integer) 2

SUNION / SINTER / SDIFF

Compute the union, intersection, or difference of multiple sets. Results are returned without modifying the source sets.

Example
> SADD skills:alice "go" "rust" "sql"
(integer) 3
> SADD skills:bob "rust" "python" "sql"
(integer) 3
> SINTER skills:alice skills:bob
1) "rust"
2) "sql"
> SUNION skills:alice skills:bob
1) "go"
2) "rust"
3) "sql"
4) "python"
> SDIFF skills:alice skills:bob
1) "go"

SUNIONSTORE / SINTERSTORE / SDIFFSTORE / SINTERCARD

Store the result of set operations into a destination key. SINTERCARD returns just the cardinality of the intersection without materializing the result.

Example
> SINTERSTORE skills:common skills:alice skills:bob
(integer) 2
> SMEMBERS skills:common
1) "rust"
2) "sql"
> SINTERCARD 2 skills:alice skills:bob
(integer) 2

SPOP / SRANDMEMBER / SMOVE

SPOP removes and returns random members. SRANDMEMBER returns random members without removing them. SMOVE atomically moves a member from one set to another.

Example
> SADD lottery "alice" "bob" "carol" "dave"
(integer) 4
> SPOP lottery
"carol"
> SRANDMEMBER lottery 2
1) "alice"
2) "dave"
> SMOVE skills:alice skills:bob "go"
(integer) 1

Command Reference

CommandDescription
SADDAdd one or more members to a set
SREMRemove one or more members
SMEMBERSGet all members
SISMEMBERCheck if a member exists
SMISMEMBERCheck if multiple members exist
SCARDGet the number of members
SPOPRemove and return random members
SRANDMEMBERReturn random members without removing
SMOVEMove a member from one set to another
SUNIONReturn the union of multiple sets
SINTERReturn the intersection of multiple sets
SDIFFReturn the difference of multiple sets
SUNIONSTOREStore union result in a key
SINTERSTOREStore intersection result in a key
SDIFFSTOREStore difference result in a key
SINTERCARDReturn the cardinality of the intersection
SSCANIncrementally iterate over members