Java连接Redis,存储对象获取对象()byte和json),连接池

Java 连接 Redis

Jedis 连接 Redis,Lettuce 连接 Redis

Jedis 连接 Redis

1. 创建 maven 项目

2. 引入依赖

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.12</version>
    </dependency>
  </dependencies>

3. 测试

  @Test
  public void Test1() {
//    连接 Redis
    Jedis jedis = new Jedis("localhost", 6379);
//    操作 Redis - 因为 Redis 命令是什么,Jedis 方法就是什么
    jedis.set("name", "李四");
//    释放资源
    jedis.close();
    System.out.println(jedis.get("name"));
  }

Jedis 如何存储一个对象到 Redis

准备一个 User 实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User  implements Serializable {
  private String name;
  private String Date;
}

导入 spring-context 依赖

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.12</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.6.RELEASE</version>
    </dependency>

创建 Demo 测试类, 编写内容

  @Test
  public void Test2() {
//    连接 Redis
    Jedis jedis = new Jedis("localhost", 6379);
//    准备 key(String) -value (user)
    String key = "user";
    User value = new User("张三", "1999");
//    将 key 和 value 转换为 byte[]
    byte[] byteKey = SerializationUtils.serialize(key);
    byte[] byteValue = SerializationUtils.serialize(value);
//    将 key 和 value 存储到 Redis
    jedis.set(byteKey, byteValue);
//    释放资源
    jedis.close();

Jedis 如何从 Redis 读取一个对象

测试

@Test
  public void Test3() {
//    连接 Redis
    Jedis jedis = new Jedis("localhost", 6379);
//    准备一个 key
    String key = "user";
//    将 key 转换为字节数组类型
    byte[] byteKey = SerializationUtils.serialize(key);
//    jedis 去 redis 中获取 value
    byte[] value = jedis.get(byteKey);
//    将 value 反序列化
    User user = (User) SerializationUtils.deserialize(value);
    System.out.println(user);
//    释放资源
    jedis.close();
  }

如何将一个对象以字符串的形式存储到 Redis

导入依赖

 <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.12</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.6.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.70</version>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>RELEASE</version>
      <scope>compile</scope>
    </dependency>

测试

  @Test
  public void test1(){
//    连接 Redis
    Jedis jedis = new Jedis("localhost",6379);
//    准备 key(String) - value(User)
    String key = "stringUser";
    User value = new User("帅哥","19999");
//    使用 fastJSON 将 value 转换为 json 字符串
    String stringValue = JSON.toJSONString(value);
//    存储到 Redis 中
    jedis.set(key,stringValue);
//    释放资源
    jedis.close();
  }

如何得到 Redis 中以字符串 (JSON) 存在形式的对象

依赖同上

测试

 @Test
  public void test2(){
//    连接 Redis
    Jedis jedis = new Jedis("localhost",6379);
// 准备一个 key
    String key = "stringUser";
    // 去 Redis 中查询 value
    String value = jedis.get(key);
    // 将 value 反序列化一个对象
    User user = JSON.parseObject(value, User.class);
    System.out.println("user ="+ user);
//    释放资源
    jedis.close();
  }

__EOF__

  • 本文作者: 到二仙桥
  • 本文链接: https://www.cnblogs.com/chougoushi/p/13404590.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。