redis 集合set

来源:互联网 发布:知乎 中国出生率 编辑:程序博客网 时间:2024/06/16 17:31

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

redis set命令

1.向集合添加一个或多个成员 SADD key member1 [member2]

127.0.0.1:6379[2]> sadd name aaa bbb ccc(integer) 3

2.获取集合的成员数 SCARD key

127.0.0.1:6379[2]> scard name(integer) 3

3.返回给定所有集合的差集 SDIFF key1 [key2]

127.0.0.1:6379[2]> sdiff name name11) "ccc"127.0.0.1:6379[2]> sdiff name1 name1) "eee"2) "ddd"

4.返回给定所有集合的差集并存储在 destination 中 SDIFFSTORE destination key1 [key2]

127.0.0.1:6379[2]> sdiffstore name2 name1 name (integer) 2127.0.0.1:6379[2]> smembers name21) "eee"2) "ddd"

5.返回给定所有集合的交集 SINTER key1 [key2]

127.0.0.1:6379[2]> sinter name name11) "bbb"2) "aaa"

6.返回给定所有集合的交集并存储在 destination 中 SINTERSTORE destination key1 [key2]

127.0.0.1:6379[2]> sinterstore name3 name name1(integer) 2127.0.0.1:6379[2]> smembers name31) "bbb"2) "aaa"

7.返回集合中的所有成员 SMEMBERS key

127.0.0.1:6379[2]> smembers name21) "eee"2) "ddd"

8.判断 member 元素是否是集合 key 的成员 SISMEMBER key member

127.0.0.1:6379[2]> sismember name aaa(integer) 1 --存在127.0.0.1:6379[2]> sismember name fff(integer) 0 --不存在

9.将 member 元素从 source 集合移动到 destination 集合 SMOVE source destination member

127.0.0.1:6379[2]> smove name name2 aaa(integer) 1 --成功将aaa从name移到name2

10.移除并返回集合中的一个随机元素 SPOP key

127.0.0.1:6379[2]> spop name"ccc" --随机移除了ccc

11.返回集合中一个或多个随机数 SRANDMEMBER key [count]

127.0.0.1:6379[2]> srandmember name1 21) "aaa"2) "ddd"127.0.0.1:6379[2]> srandmember name1 31) "eee"2) "bbb"3) "aaa"

12. 移除集合中一个或多个成员 SREM key member1 [member2]

127.0.0.1:6379[2]> srem name1 aaa bbb(integer) 2

13. 返回所有给定集合的并集 SUNION key1 [key2]

127.0.0.1:6379[2]> sunion name name11) "eee"2) "bbb"3) "ddd"

14.所有给定集合的并集存储在 destination 集合中 SUNIONSTORE destination key1 [key2]

127.0.0.1:6379[2]> sunionstore name5 name name1(integer) 3127.0.0.1:6379[2]> smembers name51) "eee"2) "bbb"3) "ddd"

15. 迭代集合中的元素 SSCAN key cursor [MATCH pattern] [COUNT count]

127.0.0.1:6379[2]> sadd myset hello(integer) 1127.0.0.1:6379[2]> sadd myset hi(integer) 1127.0.0.1:6379[2]> sadd myset have(integer) 1127.0.0.1:6379[2]> sadd myset integer(integer) 1127.0.0.1:6379[2]> sscan myset 0 match h*1) "0"2) 1) "have"   2) "hi"   3) "hello"
原创粉丝点击