|
|
|
@ -14,14 +14,28 @@ import javax.annotation.PostConstruct;
|
|
|
|
|
* @CONTACT 317758022@qq.com
|
|
|
|
|
* @DESC 只做了单个redis,但是课程中实现的redis客户端集群,要掌握一致性hash算法
|
|
|
|
|
*/
|
|
|
|
|
// 使用@Component注解将该类标记为Spring容器中的一个组件,使得Spring能够对其进行管理,方便进行依赖注入等相关操作。
|
|
|
|
|
@Component
|
|
|
|
|
// 使用lombok的@Slf4j注解,用于自动生成日志相关的代码,这样在类中就可以方便地记录各种操作的日志信息,便于后续的调试以及问题排查。
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class JedisPoolWrapper {
|
|
|
|
|
|
|
|
|
|
// 通过Spring的依赖注入机制,使用@Autowired注解自动注入Parameters类型的实例,
|
|
|
|
|
// 从命名来看,Parameters类应该是用于存放各种配置参数的,此处可能是包含了Redis相关的配置参数,比如连接池最大连接数等,用于后续初始化Jedis连接池。
|
|
|
|
|
@Autowired
|
|
|
|
|
private Parameters parameters;
|
|
|
|
|
|
|
|
|
|
// 声明一个JedisPool类型的私有变量,用于存放Jedis连接池的实例,初始值设为null,会在后续的初始化方法中进行实例化赋值。
|
|
|
|
|
private JedisPool jedisPool = null;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 使用@PostConstruct注解标记的方法,此方法会在类实例化且依赖注入完成后自动被调用,用于初始化Jedis连接池。
|
|
|
|
|
* 具体步骤如下:
|
|
|
|
|
* 1. 首先创建一个JedisPoolConfig对象,该对象用于配置Jedis连接池的各种属性,比如最大连接数、最大空闲连接数以及最大等待时间等。
|
|
|
|
|
* 2. 通过调用parameters对象的相应方法(parameters.getRedisMaxTotal()等)获取配置参数,并设置到JedisPoolConfig对象中,来定制连接池的属性。
|
|
|
|
|
* 3. 使用配置好的JedisPoolConfig对象以及从parameters对象获取到的Redis主机地址、端口号、超时时间(此处固定为2000毫秒)和密码(此处为"xxx",实际应用中应妥善保管)等信息,创建一个JedisPool实例,并赋值给jedisPool变量,完成连接池的初始化。
|
|
|
|
|
* 4. 如果在初始化过程中出现任何异常,会通过log.error记录错误日志,方便排查问题;若初始化成功,则通过log.info记录成功的提示信息。
|
|
|
|
|
*/
|
|
|
|
|
@PostConstruct
|
|
|
|
|
public void init(){
|
|
|
|
|
try {
|
|
|
|
@ -36,7 +50,10 @@ public class JedisPoolWrapper {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 对外提供的获取JedisPool实例的方法,外部类可以通过调用这个方法来获取已经初始化好的Jedis连接池实例,进而从连接池中获取Jedis客户端资源来操作Redis数据库。
|
|
|
|
|
*/
|
|
|
|
|
public JedisPool getJedisPool() {
|
|
|
|
|
return jedisPool;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|