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>