Jedis-redis
16.1.redis 简介
Redis 是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,并提供了丰富的操作命令。在 Java 开发中,使用 Redis 可以提高应用的性能和可扩展性。
16.2.使用 Jedis 整合 Redis
添加依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</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.Bean
和com.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
来管理连接池,以便更好地处理并发请求。