Jedis关于Set的API Demo

时间:2022-10-19 17:28:54

 

 

package com.daxin.jedis_datastructure;

import java.util.Set;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;

/**
*
*
@author daxin
*
* @email leodaxin@163com
*
* @date 2017年9月13日 上午8:19:22
*
*/
public class RedisSetOperation {

Jedis jedis
= null;

@Before
public void before() {
jedis
= RedisUtils.getJedis();
jedis.flushDB();
}

@After
public void after() {
jedis.close();
}

@Test
public void sadd() {
// 向集合添加一个或多个成员
Long r1 = jedis.sadd("set", "1", "2", "3");// 插入的个数
System.out.println(r1);
r1
= jedis.sadd("set", "1", "2", "3", "4", "5");
System.out.println(r1);
}

@Test
public void scard() {
jedis.sadd(
"set", "1", "2", "3");// 插入的个数
Long r1 = jedis.scard("set");
System.out.println(r1);
}

@Test
public void sdiff() {
jedis.sadd(
"set1", "1", "2", "3", "4", "5");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
jedis.sadd("set3", "1", "2", "4");// 插入的个数
Set<String> r1 = jedis.sdiff("set1", "set2", "set3");
System.out.println(r1);
// 打印的是:[5]
}

@Test
public void sdiff_smembers() {
jedis.sadd(
"set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
System.out.println(jedis.smembers("set1"));// 打印set
System.out.println(jedis.smembers("set2"));// 返回一个size=0的java的set
}

/**
*
*/
@Test
public void sdiff_store() {
jedis.sadd(
"set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
jedis.sadd("set3", "1", "2", "4");
// 计算set1和减去set2减去set3的差值存储到set中
Long r1 = jedis.sdiffstore("set", "set1", "set2", "set3");
System.out.println(r1);
// set遍历其元素使用smember
System.out.println(jedis.smembers("set"));
}

/**
* 计算交集
*/
@Test
public void sdiff_sinter() {
jedis.sadd(
"set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
Set<String> r1 = jedis.sinter("set1", "set2");
System.out.println(r1);
// [1, 2, 3]
}

/**
* 计算交集,并存储到目标dest_set中
*/
@Test
public void sdiff_sinterstore() {
jedis.sadd(
"set1", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
jedis.sadd("set2", "1", "2", "3");// 插入的个数
Long r1 = jedis.sinterstore("dest_set", "set1", "set2");
System.out.println(r1);
// [1, 2, 3]
}

@Test
public void sdiff_sismember() {
jedis.sadd(
"set", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
Boolean r1 = jedis.sismember("set", "6");
System.out.println(r1);
// [1, 2, 3]
}

@Test
public void sdiff_smove() {
jedis.sadd(
"set", "1", "2", "3", "4", "5", "6", "7");// 插入的个数
Long r1 = jedis.smove("set", "destkey", "2");
System.out.println(jedis.smembers(
"set"));// [1, 2, 3]
System.out.println(jedis.smembers("destkey"));// [1, 2, 3]
}

}