redis渐入佳境(04) sets类型

redis的sets类型,sets类型就是集合类型,类似数学里面的集合,无序不重复的一组数据下面将介绍一下sets的各种常用防范

首先就是 sadd 和 smembers 方法  使用方法如下:

sadd 集合名  集合中的元素   返回1表示加入成功 返回0加入失败

smembers 集合名  查看集合中的所有元素 

 具体代码如下

[redies@localhost ~]$ redis-cli
redis 127.0.0.1:6379> sadd myset1 one
(integer) 1
redis 127.0.0.1:6379> sadd myset1 two
(integer) 1
redis 127.0.0.1:6379> sadd myset1 three
(integer) 1
redis 127.0.0.1:6379> sadd myset1 four
(integer) 1
redis 127.0.0.1:6379> sadd myset1 five
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "three"
3) "two"
4) "one"
5) "five"
redis 127.0.0.1:6379>

srem 方法是移除一个元素 srem 集合名 元素名,

spop是随机弹出一个元素

[redies@localhost ~]$ redis-cli
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "three"
3) "two"
4) "one"
5) "five"
redis 127.0.0.1:6379> srem myset1 one
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "two"
2) "four"
3) "three"
4) "five"
redis 127.0.0.1:6379> spop myset1
"three"
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379>

sdiff 方法是取差集,方法:sdiff 集合1 集合2  返回结果为集合1中存在而集合2中不存在的元素

sdiffstore方法是取差集并放入到另一个集合中 方法:sdiffstore 集合3 集合1 集合2  将集合1中存在而集合2中不存在的元素放入集合3中

redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> sdiff myset1 mykey2
1) "five"
2) "two"
redis 127.0.0.1:6379> sdiffstore myset2 myset1 mykey2
(integer) 2
redis 127.0.0.1:6379> smembers myset2
1) "five"
2) "two"
redis 127.0.0.1:6379>

sinter方法是取交集,方法如下 sinter 集合1 集合2  返回两者的交接元素

sinterstore方法是取交集并将交集元素存放到第三个集合中 方法如下:sinterstore 集合3 集合2 集合1 ; 集合1 集合2的交集放入集合3中

实例代码如下:

redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> sinter myset1 mykey2
1) "four"
redis 127.0.0.1:6379> sinterstore myset3 myset1 mykey2
(integer) 1
redis 127.0.0.1:6379> smembers myset3
1) "four"
redis 127.0.0.1:6379>

suion 是取并集 用法如下:sunion 集合1 集合2   返回两者的并集

sunionstore 是取并集并存入第三个集合中 用法如下:sunionstore 集合3 集合1 集合2;将集合1 集合2 的并集放入到集合3中

redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> sunion myset1 mykey2
1) "six"
2) "four"
3) "five"
4) "two"
5) "one"
redis 127.0.0.1:6379> sunionstore myset4 myset1 mykey2
(integer) 5
redis 127.0.0.1:6379> smembers myset4
1) "six"
2) "four"
3) "five"
4) "two"
5) "one"
redis 127.0.0.1:6379>

smove是将集合1中的元素移动到集合2中 方法如下:smove 集合1  集合2  元素x;

redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> smove myset1 mykey2 two
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "two"
4) "one"
redis 127.0.0.1:6379>

scard是返回集合的元素个数:方法是scard 集合名;

sismember是查看某个元素是否是集合的一个元素:方法是 sismember 集合名 元素;

srandmember 是随机显示一个集合的元素:srandmember 集合名;

redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "two"
4) "one"
redis 127.0.0.1:6379> scard myset1
(integer) 2
redis 127.0.0.1:6379> scard mykey2
(integer) 4
redis 127.0.0.1:6379> sismember myset1 four
(integer) 1
redis 127.0.0.1:6379> sismember myset1 four1
(integer) 0
redis 127.0.0.1:6379> SRANDMEMBER myset1
"four"
redis 127.0.0.1:6379> SRANDMEMBER myset1
"five"
redis 127.0.0.1:6379> SRANDMEMBER myset1
"five"
redis 127.0.0.1:6379>

猜你喜欢

转载自xuelianbobo.iteye.com/blog/2088104