1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一)

查看redis set值 redis查询set中的值_redis学习-集合set常用命令

 

2.smembers:查看集合中所有的元素(上图事例)

 

3.srem:删除结合中指定的元素

查看redis set值 redis查询set中的值_System_02

4.scard:返回集合元素的数量

查看redis set值 redis查询set中的值_数据集_03

5.SRandMember

如果不填写返回个数,默认是1,如果填写的数字大于集合的size,那么返回集合的所有元素

如果填写的是负数,如果绝对值大于集合的size,那么返回值里会出现一个元素多次出现的情况。

如果key不存在,则返回nil

查看redis set值 redis查询set中的值_并集_04

smove:将一个集合的元素转移到另一个集合中

查看redis set值 redis查询set中的值_System_05

 

spop:从集合中随机移出一个元素

查看redis set值 redis查询set中的值_System_06

 

 sismember:判断元素是否在集合中,如果存在 返回1,否则返回0

查看redis set值 redis查询set中的值_redis学习-集合set常用命令_07

 

sscan:使用游标获取集合中的值

 

 

@Test
	public  void scantest(){
		Jedis jedis=new Jedis("127.0.0.1",6379);
//		jedis.select(2);
//		for (int i = 0; i < 100; i++) {
//			jedis.sadd("scantest","scanceshi"+i);
//		}
////		System.out.println(m2);
		int x=1;
		int y=0;
		int sum=0;
		ScanParams scanParams=new ScanParams();
		scanParams.match("scanceshi51");
		Set<String> strings=new TreeSet<String>();
		for(;;){
			ScanResult<String> scantest = jedis.sscan("scantest", y, scanParams);
			System.out.println(scantest.getStringCursor().toString()+"----------取出:"+scantest.getResult().size()+"----当前总数:"+(scantest.getResult().size()+sum));
			sum+=scantest.getResult().size();
			for (String o : scantest.getResult()) {
				strings.add(o);
			}
			if(scantest.getStringCursor().toString().equals("0")) break;
			y= Integer.parseInt(scantest.getStringCursor().toString());
		}
		System.out.println(strings.size());
		jedis.quit();
	}

  

 

查看redis set值 redis查询set中的值_并集_08

从0开始,一直循环,会返回两个集合,第几个是游标的位置,如果为0那么说明执行结束,如果不为0,那么下次以第一个集合返回的值作为下次开始的位置如下

查看redis set值 redis查询set中的值_System_09

 

集合 并/交/差运算

SUNION:集合并运算

查看redis set值 redis查询set中的值_并集_10

SUNIONSTORE:求并集后存到一个新的集合(如果结果集存入到已有的集合,那么会覆盖以后的数据集合)

查看redis set值 redis查询set中的值_System_11

 sinter/sinterstore同上

查看redis set值 redis查询set中的值_并集_12

 

sdiff/sdiffstore同上

 

查看redis set值 redis查询set中的值_redis学习-集合set常用命令_13