Jedis-redis

16.1.redis 简介

Redis 是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,并提供了丰富的操作命令。在 Java 开发中,使用 Redis 可以提高应用的性能和可扩展性。

16.2.使用 Jedis 整合 Redis

添加依赖

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.6.3</version>
</dependency>

添加配置类

package com.litongjava.tio.boot.hello.config;

import com.litongjava.jfinal.aop.annotation.Bean;
import com.litongjava.jfinal.aop.annotation.Configuration;
import redis.clients.jedis.Jedis;

@AConfiguration
public class JedisConfig {

  @ABean(destroyMethod = "close")
  public Jedis jedis() {
    //得到Jedis对象
    Jedis jedis = new Jedis("localhost", 6379);
    //jedis.auth();
    //向redis中添加一个字符串,测试中文乱码
    jedis.set("name", "litong");
    //获取redis中的字符串
    String string = jedis.get("name");
    System.out.println(string);
    return jedis;
  }
}

这段代码是一个 Java 配置类,用于配置和初始化一个 Jedis 客户端连接。下面是对这个类中每个部分的解释:

导入的类

  • com.litongjava.jfinal.aop.annotation.Beancom.litongjava.jfinal.aop.annotation.Configuration:这些是 JFinal Aop 框架中的注解,用于定义配置类和 Bean。

类定义

  • @AConfiguration:这个注解标记了类 JedisConfig 作为配置类。在 JFinal 框架中,配置类用于定义和配置应用程序的不同部分,如数据源、服务等。

Jedis 配置方法

  • @ABean(destroyMethod = "close"):这个注解定义了一个 Bean,即 Jedis 实例。destroyMethod = "close" 指定当应用程序关闭或者该 Bean 不再需要时,应该调用 Jedis 的 close() 方法来关闭连接。
  • public Jedis jedis():这个方法配置并返回一个 Jedis 实例。该方法的主体执行以下操作:
    • 创建一个指向本地主机(localhost)在端口 6379(Redis 的默认端口)的新 Jedis 实例。这假设 Redis 服务器运行在本地并监听默认端口。
    • jedis.set("name", "litong"):这行代码向 Redis 中添加一个键值对,键是 "name",值是 "litong"
    • String string = jedis.get("name"):这行代码从 Redis 中检索键 "name" 对应的值,并将其存储在局部变量 string 中。
    • System.out.println(string):打印检索到的值("litong")到控制台。
    • 返回创建的 Jedis 实例。

注意事项

  • 此配置类在创建 Jedis 实例时执行了一个 Redis 操作(设置并获取一个键值对)。通常,这种直接在配置方法中执行业务逻辑(如与 Redis 交互)并不是最佳实践。配置类应该专注于设置和配置组件,而业务逻辑应该放在服务类或控制器中。
  • 此配置没有显示地处理 Redis 密码认证。如果 Redis 服务器设置了密码,你需要通过 jedis.auth("yourpassword") 来认证。
  • 使用单个 Jedis 实例可能不适合多线程环境。在生产环境中,通常使用 JedisPool 来管理连接池,以便更好地处理并发请求。