StringRedisTemplate方法和Redis语法对应关系(Set)

    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    @Test
    public void testSet() {
        stringRedisTemplate.delete("testSet");

        //sadd key value1 value2
        //将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略,
        //假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合
        //当集合 key 不是集合类型时,返回一个错误
        Long saddResult = stringRedisTemplate.opsForSet().add("testSet", "1", "2");
        System.out.println("\tsadd key value1 value2:" + saddResult);

        System.out.println(stringRedisTemplate.opsForSet().members("testSet"));

        saddResult = stringRedisTemplate.boundSetOps("testSet").add("3", "4");
        System.out.println("\tsadd key value1 value2:" + saddResult);

        System.out.println(stringRedisTemplate.opsForSet().members("testSet"));

        //scard key
        //返回集合中元素的数量
        Long scardResult = stringRedisTemplate.opsForSet().size("testSet");
        System.out.println("\tscard key:" + scardResult);

        System.out.println(stringRedisTemplate.opsForSet().members("testSet"));

        //sdiff key1 key2
        //返回第一个集合与其他集合之间的差异
        stringRedisTemplate.delete("testSet01");
        stringRedisTemplate.delete("testSet02");
        stringRedisTemplate.opsForSet().add("testSet01", "1", "2", "3", "4");
        stringRedisTemplate.opsForSet().add("testSet02", "3", "4", "5", "6");
        Set<String> sdiffResult = stringRedisTemplate.opsForSet().difference("testSet01", "testSet02");
        System.out.println("\tsdiff key1 key2:" + sdiffResult);

        //sinter key1 key2
        //返回给定所有给定集合的交集, 不存在的集合 key 被视为空集, 当给定集合当中有一个空集时,结果也为空集
        Set<String> sinterResult = stringRedisTemplate.opsForSet().intersect("testSet01", "testSet02");
        System.out.println("\tsinter key1 key2:" + sinterResult);

        //sunion key1 key2
        //返回给定集合的并集,不存在的集合 key 被视为空集
        Set<String> sunionResult = stringRedisTemplate.opsForSet().union("testSet01", "testSet02");
        System.out.println("\tsunion key1 key2:" + sunionResult);

        //sdiffstore des key1 key2
        //将给定集合之间的差集存储在指定的集合中,如果指定的集合 key 已存在,则会被覆盖
        Long sdiffstoreResult = stringRedisTemplate.opsForSet().differenceAndStore("testSet01", "testSet02", "diffTestSet");
        System.out.println("\tsdiffstore des key1 key2:" + sdiffstoreResult);

        //sinterstore des key1 key2
        //将给定集合之间的交集存储在指定的集合中,如果指定的集合已经存在,则将其覆盖
        Long sinterstoreResult = stringRedisTemplate.opsForSet().intersectAndStore("testSet01", "testSet02", "interTestSet");
        System.out.println("\tsinterstore des key1 key2:" + sinterstoreResult);

        //sunionstore des key1 key2
        //将给定集合的并集存储在指定的集合 des 中,如果 des 已经存在,则将其覆盖
        Long sunionstoreResult = stringRedisTemplate.opsForSet().unionAndStore("testSet01", "testSet02", "unionTestSet");
        System.out.println("\tsunionstore des key1 key2:" + sunionstoreResult);

        //sismember key value
        //判断成员元素是否是集合的成员
        Boolean sismemberResult = stringRedisTemplate.opsForSet().isMember("testSet", "1");
        System.out.println("\tsismember key value:" + sismemberResult);

        //smembers key
        //返回集合中的所有的成员,不存在的集合 key 被视为空集合
        Set<String> smembersResult = stringRedisTemplate.opsForSet().members("testSet");
        System.out.println("\tsmembers key:" + smembersResult);

        //spop key [count]
        //用于移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素
        String spopResult = stringRedisTemplate.opsForSet().pop("testSet");
        System.out.println("\tspop key:" + spopResult);

        System.out.println(stringRedisTemplate.opsForSet().members("testSet"));

        //srandmember key count
        //返回集合中的一个随机元素
        //如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同
        //如果 count 大于等于集合基数,那么返回整个集合
        //如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值
        List<String> srandmemberResult = stringRedisTemplate.opsForSet().randomMembers("testSet", 2);
        System.out.println("\tsrandmember key count:" + srandmemberResult);

        System.out.println(stringRedisTemplate.opsForSet().members("testSet"));

        //srem key member1 member2
        //用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略,当 key 不是集合类型,返回一个错误
        Long sremResult = stringRedisTemplate.opsForSet().remove("testSet", "2");
        System.out.println("\tsrem key member1 member2:" + sremResult);

        System.out.println(stringRedisTemplate.opsForSet().members("testSet"));

    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值