您的位置:首页 > 数据库 > Redis

Redis简单入门五——对Set集合的操作

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

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

2、SCARD key :获取集合的成员数     3、DIFF key1 [key2] :返回给定所有集合的差集

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

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

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

7、SISMEMBER key member :判断 member 元素是否是集合 key 的成员

8、SMEMBERS key :返回集合中的所有成员

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

10、SPOP key:移除并返回集合中的一个随机元素:11、SRANDMEMBER key [count] :返回集合中一个或多个随机数

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

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

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

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

代码只给出main部分了:

public static void main(String[] args) {
Jedis jedis = instanceJedis();
String key = "setkey"; String key2 = "setKey2";
jedis.sadd(key, "value1","value2");
jedis.sadd(key2, "v1","v2");
System.out.println("获取集合的成员数:"+jedis.scard(key));
System.out.println("返回给定所有集合的差集:"+jedis.sdiff(key, key2));
System.out.println("返回给定所有集合的差集并存储在 destination中:"+jedis.sdiffstore(key2, key, key2));;
System.out.println("返回给定所有集合的交集:"+jedis.sinter(key, key2));
System.out.println("返回给定所有集合的交集并存储在 destination 中:"+jedis.sinterstore(key2, key, key2));
System.out.println("判断 member 元素是否是集合 key 的成员:"+jedis.sismember(key, "value2"));
System.out.println("返回集合中的所有成员:"+jedis.smembers(key));
jedis.smove(key, key2, "v2");
System.out.println("移除并返回集合中的一个随机元素:"+jedis.spop(key2));
System.out.println("返回集合中一个或多个随机数:"+jedis.srandmember(key2, 2));
jedis.srem(key2, "value1", "value2");
System.out.println("返回所有给定集合的并集:"+jedis.sunion(key, key2));
jedis.sunionstore("newSetKey", key, key2);
System.out.println("SSCAN用法");
ScanParams scanParams = new ScanParams();
scanParams.match("*");
ScanResult<String> result = jedis.sscan(key, "0", scanParams);
int cursor = result.getCursor();
List<String> strList = result.getResult();
for (String str : strList) {
System.out.println(str);
}
}

输出如下:

获取集合的成员数:2

返回给定所有集合的差集:[value2, value1]

返回给定所有集合的差集并存储在 destination中:2

返回给定所有集合的交集:[value1, value2]

返回给定所有集合的交集并存储在 destination 中:2

判断 member 元素是否是集合 key 的成员:true

返回集合中的所有成员:[value1, value2]

移除并返回集合中的一个随机元素:value2

返回集合中一个或多个随机数:[value1]

返回所有给定集合的并集:[value1, value2]

SSCAN用法

value1

value2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis