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] } }