集合Set实战之简介与常用命令介绍

正如JavaSE集合体系中的Set一样,元素唯一存储,但是是无序的

  • Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据
  • Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
  • 集合中最大的成员数为2^32-1,每个集合可存储40多亿个成员

命令

sadd setOne redis 插入元素

sadd setOne mysql

smembers setOne: 获取所有元素

scard setOne: 获取集合中的元素个数

sadd setTwo mysql python php oracle

sdiff setOne setTwo:差集 表示存在于第一个集合,而不存在于第二个集合的元素

sinter setOne setTwo:交集

sunion setOnet setTwo:并集

sismember setOne mysql:判断mysql是否setOne集合中的成员

spop setOne:随机地弹出一个元素

srandmember setOne 1[count]:随机返回(而不是弹出)count个元素

srem setTwo python oracle:移除集合setTwo中指定的python和oracle成员

对应API的使用

   @Test
    public void method3(){
        log.info("--开始集合Set测试--");

        final String key1 = "SpringBoot:Set:10010:V1";
        final String key2 = "SpringBoot:Set:10011:V2";
        redisTemplate.delete(key1);
        redisTemplate.delete(key2);
        SetOperations<String, String> setOperations = redisTemplate.opsForSet();
        setOperations.add(key1, new String[]{"a","b","c"});
        setOperations.add(key2, new String[]{"b","e","f"});

        log.info("--集合key1的元素:{}", setOperations.members(key1));
        log.info("--集合key2的元素:{}", setOperations.members(key2));

        log.info("--集合key1随机取1个元素:{}", setOperations.randomMember(key1));
        log.info("--集合key1随机取n个元素:{}", setOperations.randomMembers(key1, 2));

        log.info("--集合key1元素个数:{}", setOperations.size(key1));
        log.info("--集合key2元素个数:{}", setOperations.size(key2));

        log.info("--元素a是否为集合key1的元素:{}", setOperations.isMember(key1, "a"));
        log.info("--元素f是否为集合key1的元素:{}", setOperations.isMember(key1, "f"));

        log.info("--集合key1和集合key2的差集元素:{}", setOperations.difference(key1,key2));
        log.info("--集合key1和集合key2的交集元素:{}", setOperations.intersect(key1,key2));
        log.info("--集合key1和集合key2的并集元素:{}", setOperations.union(key1,key2));

        log.info("--从集合key1中弹出一个随机的元素:{}", setOperations.pop(key1));
        log.info("--集合key1的元素:{}", setOperations.members(key1));
        log.info("--将c从集合key1的元素列表中移除:{}", setOperations.remove(key1, "c"));
        log.info("--集合key1的元素:{}", setOperations.members(key1));

    }

运行结果

猜你喜欢

转载自blog.csdn.net/weixin_37841366/article/details/109142367
今日推荐