在springboot中使用jedis来读取redis
一.搭建一个项目
- 选中spring initializr

- 设置好项目名和包名后next

- 设置要用的jar包,然后next,finish


二.配置jedis
- 在pom.xml文件添加依赖
注意:建议springboot的版本在2.2.2或以上,我之前使用比较低的版本,然后一直试都不行,可能是版本低的jar包的版本不一样,使用方法也不一样
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
- 在src/main/resources下新建一个application.yml文件
我在使用gbk编码的时候,会出现报错,把注释删掉就行了
server:
port: 8080
spring:
redis:
port: 6379 #端口号
password: 123456 #密码
host: 192.168.80.228 #服务器地址
jedis:
pool:
max-idle: 6 #最大空闲数
max-active: 10 #最大连接数
min-idle: 2 #最小空闲数
timeout: 2000 #连接超时
- 编写config
在src/main/java下新建一个config.JedisConfig.java
package com.example.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@Configuration
public class JedisConfig extends CachingConfigurerSupport {
private Logger logger= LoggerFactory.getLogger(JedisConfig.class);
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.timeout}")
private int timeout;
@Value("${spring.redis.jedis.pool.max-active}")
private int maxActive;
@Value("${spring.redis.jedis.pool.max-idle}")
private int maxIdle;
@Value("${spring.redis.jedis.pool.min-idle}")
private int minIdle;
@Bean
public JedisPool redisPoolFactory(){
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setMaxTotal(maxActive);
JedisPool jedisPool=new JedisPool(jedisPoolConfig,host,port,timeout,password);
logger.info("JedisPool连接成功:"+host+":"+port);
return jedisPool;
}
}
三.测试
- 编写一个test
package com.example;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import redis.clients.jedis.JedisPool;
@SpringBootTest
public class myTest {
@Autowired
private JedisPool jedisPool;
@Test
public void myTest(){
System.out.println(jedisPool);
}
}
- 运行
能够输出这一串东西就可以了
redis.clients.jedis.JedisPool@715d6168
这就是jedis配置好了
四.使用jedis
通过jedispool获取jedis,就可以使用jedis来对redis数据库进行操作了
@Autowired
JedisPool jedisPool;
Jedis jedis=jedisPool.getResource();
jedis.exists("a");
五.编写工具类
这里只包含最基本的获取jedis和关闭jedis的功能
package com.example.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
@Component
public class JedisUtils {
@Autowired
JedisPool jedisPool;
//获取jedis
private Jedis getJedis(){
return jedisPool.getResource();
}
//关闭jedis
private void cloneJedis(Jedis jedis){
if (jedis!=null){
jedis.close();
}
}
}
|你知道的越多,不知道的越多。 |如果本文章内容有问题,请直接评论或者私信我。如果觉得写的还不错的话,点个赞也是对我的支持哦。 |未经允许,不得转载!|微信搜【程序员徐小白】,关注即可第一时间阅读最新文章。回复【面试题】有我准备的50道高频校招面试题,以及各种学习资料。

浙公网安备 33010602011771号