(六)Redis之数据结构之Set

一、常用方法

  • 和List类型不同的是,Set集合中不允许出现重复的元素
  1. 添加/删除元素
  2. 获取集合中的元素
  3. 集合中的差集运算
  4. 集合中的交集运算
  5. 集合中的并集元算
  6. 扩展命令

  1和2  添加/删除元素和获取集合中的元素和是否该元素

package myRedis01;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

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

import redis.clients.jedis.Jedis;

public class JedisTest {
     
     Jedis jedis=new Jedis("127.0.0.1",6379); // 创建客户端 设置IP和端口
    
 
     /**
      * 添加/删除元素
      */
    @Test
    public void addAndDel() {
        /**
         * set中添加和获取
         */
        jedis.sadd("set1","a","b","c");
        jedis.sadd("set1","a","d","e");
        
        System.out.println("不会出现重复的元素:"+"	"+jedis.smembers("set1"));
        
        /**
         * 删除元素
         */
        jedis.srem("set1", "d","e");
        System.out.println("删除两个元素后:"+"	"+jedis.smembers("set1"));
        
        /**
         * 判断某个元素是否存在
         */
        boolean flag=jedis.sismember("set1", "a");
        System.out.println("是否存在该元素"+"	"+flag);
        
    }
     
  
     @After
     public void close() {
         jedis.close();
     }
     
}

   3和4和5  计算差、交、并集

    /**
     * 计算差、交、并集
     */
    @Test
    public void scal() {
        
        jedis.sadd("set5", "a", "b", "c");
        jedis.sadd("set6", "b", "c", "d");
        
        /**
         * 差集
         * jedis.sdiff("set2","set3") 结果返回set2有但是set3没有的元素
         */
        Set<String> sets=jedis.sdiff("set5","set6");
        System.out.println("计算差集");
        for(String str:sets) {
            System.out.println(str);
        }
        System.out.println("============");
        
        /**
         * 交集
         */
        System.out.println("计算交集");
        Set<String> sets2=jedis.sinter("set5","set6");
        for(String str:sets2) {
            System.out.println(str);
        }
        System.out.println("============");
        
        /**
         * 计算并集
         */
        System.out.println("计算并集");
        
        Set<String> sets3=jedis.sunion("set5","set6");
        for(String str:sets3) {
            System.out.println(str);
        }
        
        System.out.println("============");
        
    }

   6.  扩展命令

/**
     *  扩展命令
     */
    @Test
    public void other() {
        /**
         * 计算元素总数
         */
        jedis.sadd("set7", "b", "c", "d","e");
        
        long sum=jedis.scard("set7");
        System.out.println("元素总数为:"+"	"+sum);
        
        /**
         * 随机取一个元素
         */
        
        String rand=jedis.srandmember("set7");
        System.out.println("随机取一个元素"+"	"+rand);
        
    }

原文地址:https://www.cnblogs.com/shyroke/p/8007233.html