Java实现Redis的集合(set)命令操作

配置文件请看上篇Java实现redis https://www.jb51.net/article/190922.htm

下面测试redis的集合set的类型,注释里面的代码是linux中redis命令

package com.huadian.set;

import com.huadian.redisUntil.JedisPoolUntil;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.ScanResult;

import java.util.HashSet;

public class Set {
  private Jedis jedis = null;
  @Before
  public void fun(){
    jedis = JedisPoolUntil.getJedis();
  };

  /**
   *Redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。

   假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。

   当集合 key 不是集合类型时,返回一个错误。
   redis 127.0.0.1:6379> SADD KEY_NAME VALUE1..VALUEN
   */
  @Test
  public void sadd(){
    HashSet<String> set1 = new HashSet<>();
    Long sadd = jedis.sadd("set", "冷夢");
    System.out.println(sadd);
  }

  /**
   * Redis Scard 命令返回集合中元素的数量。
   * redis 127.0.0.1:6379> SCARD KEY_NAME
   */
  @Test
  public void scard(){
    Long set = jedis.scard("set");
    System.out.println(set);
  }

  /**
   *Redis Sdiff 命令返回给定集合之间的差集。不存在的集合 key 将视为空集。
   */
  @Test
  public void sdiff(){
    java.util.Set<String> sdiff = jedis.sdiff("set");
    System.out.println(sdiff);
  }

  /**
   *Redis Sdiffstore 命令将给定集合之间的差集存储在指定的集合中。如果指定的集合 key 已存在,则会被覆盖
   * redis 127.0.0.1:6379> SDIFFSTORE DESTINATION_KEY KEY1..KEYN
   */
  @Test
  public void sdiffstore(){
    Long sdiffstore = jedis.sdiffstore("set", "冷萌");
    System.out.println(sdiffstore);
  }

  /**
   * Redis Sinter 命令返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
   * redis 127.0.0.1:6379> SINTER KEY KEY1..KEYN
   */
  @Test
  public void sinter(){
    java.util.Set<String> sinter = jedis.sinter("set", "冷萌");
    System.out.println(sinter);
  }

  /**
   * Redis Sismember 命令判断成员元素是否是集合的成员。
   * redis 127.0.0.1:6379> SISMEMBER KEY VALUE
   */
  @Test
  public void sismember(){
    Boolean sismember = jedis.sismember("set", "冷萌");
    System.out.println(sismember);
  }

  /**
   * Redis Smove 命令将指定成员 member 元素从 source 集合移动到 destination 集合。

   SMOVE 是原子性操作。

   如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。

   当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

   当 source 或 destination 不是集合类型时,返回一个错误
   redis 127.0.0.1:6379> SMOVE SOURCE DESTINATION MEMBER
   */
  @Test
  public void smove(){
    Long smove = jedis.smove("set", "冷萌", "set1");
    System.out.println(smove);
  }

  /**
   * Redis Spop 命令用于移除并返回集合中的一个随机元素。
   * redis 127.0.0.1:6379> SPOP KEY
   */
  @Test
  public void spop(){
    String set = jedis.spop("set");
    System.out.println(set);
  }

  /**
   * Redis Srandmember 命令用于返回集合中的一个随机元素。
   * redis 127.0.0.1:6379> SRANDMEMBER KEY [count]
   */
  @Test
  public void srandmember(){
    String set = jedis.srandmember("set");
    System.out.println(set);
  }

  /**
   * Redis Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
   * 当 key 不是集合类型,返回一个错误。
   * redis 127.0.0.1:6379> SREM KEY MEMBER1..MEMBERN
   */
  @Test
  public void srem(){
    Long srem = jedis.srem("set", "memory");
    System.out.println(srem);
  }

  /**
   * Redis Sunion 命令返回给定集合的并集。不存在的集合 key 被视为空集。
   * redis 127.0.0.1:6379> SUNION KEY KEY1..KEYN
   */
  @Test
  public void sunion(){
    java.util.Set<String> set = jedis.sunion("set");
    System.out.println(set);
  }
  @Test
  public void sscan(){
    ScanResult<String> set = jedis.sscan("set", 1);
    System.out.println(set);
  }
}

补充知识:redis set集合的增删改查

如图所示:

以上这篇Java实现Redis的集合(set)命令操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用java连接Redis,Maven管理操作

    pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0

  • Java操作Redis详细介绍

    1. 简介 Redis 是一个开源(BSD许可)的,内存中的key-value存储系统,它可以用作数据库.缓存和消息中间件. 2. 对key的操作 首先要建立连接Jedis jedis = new Jedis("127.0.0.1", 6379),然后就可以对string,set,zset,hash进行操作了. //对key的测试 public void keyTest() { System.out.println(jedis.flushDB()); //清空数据 System.out

  • Java连接redis及基本操作示例

    本文实例讲述了Java连接redis及基本操作.分享给大家供大家参考,具体如下: 点击此处:本站下载安装. 解压安装 启动redis:使用cd命令切换目录到 D:\redis运行redis-server.exe redis.windows.conf 默认端口为6379 访问:切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379. pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0&

  • Java调用Redis集群代码及问题解决

    前言 需要使用以下jar包 Maven项目引用以下配置: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>redis.clients&l

  • Java实现Redis的集合(set)命令操作

    配置文件请看上篇Java实现redis https://www.jb51.net/article/190922.htm 下面测试redis的集合set的类型,注释里面的代码是linux中redis命令 package com.huadian.set; import com.huadian.redisUntil.JedisPoolUntil; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jed

  • Java中对List集合的常用操作详解

    目录: 1.list中添加,获取,删除元素: 2.list中是否包含某个元素: 3.list中根据索引将元素数值改变(替换): 4.list中查看(判断)元素的索引: 5.根据元素索引位置进行的判断: 6.利用list中索引位置重新生成一个新的list(截取集合): 7.对比两个list中的所有元素: 8.判断list是否为空: 9.返回Iterator集合对象: 10.将集合转换为字符串: 11.将集合转换为数组: 12.集合类型转换: 备注:内容中代码具有关联性. 1.list中添加,获取,

  • Redis有序集合类型的操作_动力节点Java学院整理

    今天我们说一下Redis中最后一个数据类型 "有序集合类型",回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这些代码的好心人真的要一生平安哈,不管我们想没想的到的东西,在这个世界上都已经存在着,曾几何时,我们想把所有数据按照数据结构模式组成后灌输到内存中,然而为了达到内存共享的方式,不得不将这块内存单独部署,同时还要考虑怎么序列化,何时序列互的问题,烦心事太多太多...后来才知道有redis这么个玩意,能把高级的,低级的数据结构单独包装到一个共享内存中(Redi

  • Redis有序集合类型的常用命令小结

    一.有序集合类型 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已.Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作.集合的元素依然是不能够相同的,但是分数可以相同. 下面列举有序集合和类型和列表类型的相似处: ①两者都是有序的(废话!) ②两者都可以获得某一范围的元素 下面列举区别: ①列表是链表实现的,靠近两边的数据读取极快,而元素过多后获取中间元素的速度则会很慢:有序集合

  • 在java中获取List集合中最大的日期时间操作

    取List集合中最大的日期, 可以用Date max = Collections.max(dateList);, 传入一个日期集合, 就可以获取, 工作中有这个需求, 就查找到这个, 代码如下 } else { /** 获取此专题下的所有内容的最新时间 */ Long featureId = this.communityFeatureMapper.selectFeatureIdByLabelId(labelId); List<CommunityFeatureRelation> communit

  • java关于list集合做删除操作时的坑及解决

    目录 关于list集合做删除操作时的坑 解决办法 对List集合的常用操作 1.list中添加,获取,删除元素 2.list中是否包含某个元素 3.list中根据索引将元素数值改变(替换) 4.list中查看(判断)元素的索引 5.根据元素索引位置进行的判断 6.利用list中索引位置重新生成一个新的list(截取集合) 7.对比两个list中的所有元素 8.判断list是否为空 9.返回Iterator集合对象 10.将集合转换为字符串 11.将集合转换为数组 12.集合类型转换 13.去重复

  • Java集合Stream流操作的基本使用教程分享

    目录 事前准备 Filter Sorted Map Match Count Reduce 总结 Java 中可以使用 java.util.Stream 对一个集合(实现了java.util.Collection接口的类)做各种操作,例如:求和.过滤.排序等等. 这些操作可能是中间操作——返回一个 Stream 流,或者是终端操作——返回一个结果. 流操作并不会影响原来的集合,可以简单认为,流操作是把集合中的一个元素逐个复制放到一个首尾相接的流动的水槽中. Stream 流支持同步执行,也支持并发

  • 使用Java实现Redis限流的方法

    1.概述   限流的含义是在单位时间内确保发往某个模块的请求数量小于某个数值,比如在实现秒杀功能时,需要确保在10秒内发往支付模块的请求数量小于500个.限流的作用是防止某个段时间段内的请求数过多,造成模块因高并发而不可用. 2.zset有序集合相关命令与限流   zset也叫有序集合,是Redis的一种数据类型,在其中每个值(value)都会有一个对应的score参数,以此来描述该值的权重分值.可以通过如下形式的命令向zset有序集合里添加元素: zadd key score value   

随机推荐