redis数据类型之set常用操作

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

[i]SADD key member1 [member2] 向集合添加一个或多个成员[/i]
redis 127.0.0.1:6379> sadd ids a1
(integer) 1
redis 127.0.0.1:6379> sadd ids a2
(integer) 1
redis 127.0.0.1:6379> sadd ids a3
(integer) 1
redis 127.0.0.1:6379> sadd ids a4
(integer) 1

[i]scard获取成员个数[/i]
redis 127.0.0.1:6379> scard ids //在上面我们添加了4个成员
(integer) 4

[i]sdiff 返回给定集合的差集[/i]
redis 127.0.0.1:6379> sadd userIds a1
(integer) 1
redis 127.0.0.1:6379> sadd userIds a2
(integer) 1
redis 127.0.0.1:6379> sadd userIds dxc
(integer) 1
redis 127.0.0.1:6379> sadd userIds dac
(integer) 1
redis 127.0.0.1:6379> sdiff ids userIds //注:ids和userId两个集合的差集(ids中有userIds中没有的成员们)
1) "a3"
2) "a4"

[i]sdiffstore 把ids userIds集合的差集存贮到集合theIds 结合中[/i]
redis 127.0.0.1:6379> sdiffstore theIds ids userIds
(integer) 2
redis 127.0.0.1:6379> smembers theIds //smembers 返回所有成员
1) "a3"
2) "a4"

[i]sinter 求交集[/i]
redis 127.0.0.1:6379> sinter ids userIds
1) "a2"
2) "a1"

[i]sinterstore 求ids和userIds的交集并存贮到集合theSameIds[/i]
redis 127.0.0.1:6379> sinterstore theSameIds ids userIds
(integer) 2
redis 127.0.0.1:6379> smembers theSameIds
1) "a2"
2) "a1"

[i]sismember 判断某个元素是否为某个集合的成员[/i]
redis 127.0.0.1:6379> sismember ids a1 //判断a1是否为集合ids的成员 是返回1 不是返回0
(integer) 1
redis 127.0.0.1:6379> sismember ids a1cc
(integer) 0

[i]smove source destination member
将member元素从source 集合移动到 destination 集合[/i]

[i]spop key 移除并返回集合中的一个随机元素[/i]
redis 127.0.0.1:6379> spop ids
"a3"


[i]求并集[/i]
redis 127.0.0.1:6379> sadd region1 xian
(integer) 1
redis 127.0.0.1:6379> sadd region1 changsha
(integer) 1
redis 127.0.0.1:6379> sadd region1 bejing
(integer) 1
redis 127.0.0.1:6379> sadd region2 bejing
(integer) 1
redis 127.0.0.1:6379> sadd region2 guangzhou
(integer) 1
redis 127.0.0.1:6379> sadd region2 shengzheng
(integer) 1
例如:求region1 和region2 的并集
redis 127.0.0.1:6379> sunion region1 region2
1) "bejing"
2) "guangzhou"
3) "xian"
4) "shengzheng"
5) "changsha"
例如:求region1 和region2 的并集并 存贮在 region集合中
redis 127.0.0.1:6379> sunionstore region region1 region2
(integer) 5
redis 127.0.0.1:6379> smembers region
1) "bejing"
2) "guangzhou"
3) "xian"
4) "shengzheng"
5) "changsha"
[i]
Redis Sscan 命令用于迭代集合键中的元素。[/i]
redis 127.0.0.1:6379> SADD myset1 "hello"
(integer) 1
redis 127.0.0.1:6379> SADD myset1 "hi"
(integer) 1
redis 127.0.0.1:6379> SADD myset1 "bar"
(integer) 1
redis 127.0.0.1:6379> sscan myset1 0 match h*
1) "0"
2) 1) "hello"
2) "h1"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值