SADD : 将元素添加到集合
127.0.0.1:6379> sadd list element [element ...]
命令返回成功添加的元素数量作为返回值
127.0.0.1:6379> sadd databases "redis" (integer) 1
忽略已存在的元素,因为集合不存储相同的元素
127.0.0.1:6379> sadd databases "redis" (integer) 0
如果有新元素与已存在的旧元素,忽略已存在的元素
127.0.0.1:6379> sadd databases "redis" "mysql" (integer) 1
srem 从集合里移除元素
127.0.0.1:6379> SREM set element [element ...]
移除元素操作
127.0.0.1:6379> SREM databases "redis" (integer) 1
如果给定元素不存在于集合里,那么srem命令会忽略不存在元素,只移除存在的元素
127.0.0.1:6379> srem databases "memcached" (integer) 0
smove :将一个元素熊一个集合移动到另一个集合
127.0.0.1:6379> SMOVE source target element
使用smove命令将存在于databases集合的redis元素以及mongodb元素移动到nodes集合里
127.0.0.1:6379> sadd databases "redis" "mongodb" (integer) 2 127.0.0.1:6379> SMOVE databases nodesql "redis" (integer) 1 127.0.0.1:6379> SMOVE databases nodesql "mongodb" (integer) 1
忽略不存在的元素,如果用户想要移动的元素并不存在与原集合,那么smove将放弃执行移动操作,返回0表示失败
127.0.0.1:6379> sadd tr "app" "lpp" "cpp" (integer) 3 127.0.0.1:6379> sadd tk "aipp" "lipp" "clpp" (integer) 3 127.0.0.1:6379> SMOVE tr tk "apple" 不存在 (integer) 0 127.0.0.1:6379> SMOVE tr tk "app" (integer) 1
smembers :获取集合包含的所以元素
SMEMBERS set
获取集合tk里所有元素
127.0.0.1:6379> SMEMBERS tk 1) "app" 2) "aipp" 3) "clpp" 4) "lipp"
元素的无序排列:因为redis集合以无序的方式存储,并且以smembers命令在获取元素时也不会对元素进行任何排序,所以根据元素添加顺序不同,两个包含相同元素的集合在执行smembers命令时结果也会有所不同
127.0.0.1:6379> sadd redis-1 "apple" "banana" "cherry" "hg" (integer) 4 127.0.0.1:6379> sadd redis-2 "hg" "banana" "apple" "cherry" (integer) 4 127.0.0.1:6379> SMEMBERS redis-1 1) "hg" 2) "cherry" 3) "apple" 4) "banana" 127.0.0.1:6379> SMEMBERS redis-2 1) "cherry" 2) "hg" 3) "apple" 4) "banana"
scard:获取集合包含元素数量
127.0.0.1:6379> SCARD set
查看redis-1 包含元素数量
127.0.0.1:6379> SCARD redis-1 (integer) 4
sismember:检查给定的元素是否存在于集合里
127.0.0.1:6379> SISMEMBER set element
查看测试
127.0.0.1:6379> SMEMBERS databases 1) "Neo4j" 2) "mysql" 3) "redis" 4) "mongodb" 5) "Postgresql" 127.0.0.1:6379> SISMEMBER databases "redis" (integer) 1 127.0.0.1:6379> SISMEMBER databases "mongodb" (integer) 1 127.0.0.1:6379> SISMEMBER databases "mysql" (integer) 1
检查不存在的元素
127.0.0.1:6379> SISMEMBER databases "oracle" (integer) 0
srandmember:随机获取集合里元素,命令不会移除集合里元素
127.0.0.1:6379> SRANDMEMBER databases "mongodb" 127.0.0.1:6379> SRANDMEMBER databases "redis" 127.0.0.1:6379> SRANDMEMBER databases "redis" 127.0.0.1:6379> SRANDMEMBER databases "redis"
随机获取指定数量的元素
127.0.0.1:6379> SRANDMEMBER databases 2 1) "Neo4j" 2) "mongodb" 127.0.0.1:6379> SRANDMEMBER databases 3 1) "redis" 2) "mysql" 3) "Neo4j"
spop 随机从集合移除指定数量元素默认一个元素
127.0.0.1:6379> spop key [count]
随机移除元素操作
127.0.0.1:6379> spop databases "mysql" 127.0.0.1:6379> SMEMBERS databases 1) "redis" 2) "Neo4j" 3) "Postgresql" 4) "mongodb"
sinter sinterstore:对集合进行交集计算
127.0.0.1:6379> sinter set [set set] [key ...]
创建两个元素,查看交集
127.0.0.1:6379> sadd c1 "a" "b" "c" "d" (integer) 4 127.0.0.1:6379> sadd c2 "c" "d" "e" "f" (integer) 4 127.0.0.1:6379> SINTER c1 c2 1) "d" 2) "c"
sinterstore 命令可以把给定的集合的交集计算结果存储到指定的键里
127.0.0.1:6379> SINTERSTORE destination_key set [set ...]
将c1与c2的交集写入c3里
127.0.0.1:6379> SINTERSTORE c3 c1 c2 (integer) 2 127.0.0.1:6379> SMEMBERS c3 1) "d" 2) "c"
sunion 、sunionstore 集合并执行并集运算
127.0.0.1:6379> SUNION set [set ...] [key
对c1与c2进行并集运算
127.0.0.1:6379> SUNION c1 c2 1) "d" 2) "f" 3) "c" 4) "e" 5) "b" 6) "a"
sunionstore 并集结果存入c4里
127.0.0.1:6379> SUNIONSTORE c4 c1 c2 (integer) 6 127.0.0.1:6379> SMEMBERS c4 1) "d" 2) "f" 3) "c" 4) "e" 5) "b" 6) "a"
sdiff sdiffstore 对集合进行差集运算
127.0.0.1:6379> SDIFF set [set ...]
对c1与c2 进行差集运算
127.0.0.1:6379> SDIFF c1 c2 1) "b" 2) "a"
sdiffstore 把c1与c2的差集运算的结果写进c5里
127.0.0.1:6379> SDIFFSTORE c5 c1 c2 (integer) 2 127.0.0.1:6379> SMEMBERS c5 1) "b" 2) "a"