redis操作set集合

 

使用redis操作set集合的学习,希望有所帮助

public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost", 6379);
        //测试jedis连接
        //System.out.println(jedis.ping());
        //操作set集合
        testSet(jedis);
    }

 

 

具体的方法

 /***
    *@author zh
    *@Date 2020/12/31
    *@MethodNotes   jedis操作Set集合
    **/
    public static void testSet(Jedis jedis){
        /***
        *@author zh
        *@Date 2020/12/31
        *@MethodNotes  首先我们要创建一个set集合
         * 那么创建好了set集合也要知道在redis中是用什么命令去读取set集合
         * 在添加成功之后可以先使用 type key去查看这个key是什么类型的
         * jedis.sadd("user","aaa","bbb","ccc");
         * 当上面的代码执行完后,如果type user 那么就会返回一个set
         * set的查询命令为  smembers key
         *
         * 这个是java里面获取set集合的所有元素的方法
         * jedis.smembers("user");
         *
         * set集合删除一个值为aaa的元素 也可以写多个删除(jedis.srem("user","aaa","bbb");)
         * jedis.srem("user","aaa");
         *
         * 随机出栈set里的一个元素
         * jedis.spop("user");
         *
         * 获取set中元素个数
         * jedis.scard("user");
         *
         * 将aaa从set集合user中,剪切到set集合in中
         * jedis.smove("user","in","aaa");
         * 测试代码:
         *         jedis.sadd("user","aaa","bbb","ccc");
         *         jedis.sadd("in","ddd","eee","fff");
         *         jedis.smove("user","in","aaa");
         *         Set<String> user = jedis.smembers("user");
         *         Set<String> in = jedis.smembers("in");
         *         System.out.println(user.toString());
         *         System.out.println(in.toString());
         *
         * 获取set集合user和set集合in的交集
         * jedis.sinter("user", "in");
         *
         * 测试代码:
         *         jedis.sadd("user","aaa","bbb","ccc");
         *         jedis.sadd("in","aaa","eee","fff");
         *         Set<String> sinter = jedis.sinter("user", "in");
         *         System.out.println(sinter);
         *
         * 获取set集合user和set集合in的并集
         * jedis.sunion("user", "in");
         *
         * 测试代码
         *         jedis.sadd("user","aaa","bbb","ccc");
         *         jedis.sadd("in","aaa","eee","fff");
         *         Set<String> sunion = jedis.sunion("user", "in");
         *         System.out.println(sunion);
         *
         * 获取set集合user和set集合in的差集
         * jedis.sdiff("in", "user");
         *
         * 测试代码
         *         jedis.del("user");
         *         jedis.del("in");
         *         jedis.sadd("user","aaa","bbb","ccc");
         *         jedis.sadd("in","aaa","eee","fff");
         *         Set<String> sdiff = jedis.sdiff("in", "user");
         *         System.out.println(sdiff);
         *  经过测试,只会获取到集合in的差集也就是key1
         *  可能是测试方法不对,也有可能是这个方法只是 比较key1和key2之后只返回key1的差集 而不是和我预想的是返回除交集外的所有数据
        **/
    }

 

上一篇:[970]Redis Sadd命令、Srandmember 命令


下一篇:redis--set(无序集合)--的常用命令,应用