在springboot中使用jedis来读取redis

一.搭建一个项目

  1. 选中spring initializr
    在这里插入图片描述
  2. 设置好项目名和包名后next
    在这里插入图片描述
  3. 设置要用的jar包,然后next,finish
    在这里插入图片描述
    在这里插入图片描述

二.配置jedis

  1. 在pom.xml文件添加依赖
    注意:建议springboot的版本在2.2.2或以上,我之前使用比较低的版本,然后一直试都不行,可能是版本低的jar包的版本不一样,使用方法也不一样
<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
</dependency>
  1. 在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 #连接超时
  1. 编写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;

    }
}

三.测试

  1. 编写一个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);
    }
}
  1. 运行

能够输出这一串东西就可以了

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();
        }
    }
}
posted @ 2020-02-26 12:08  程序员徐小白  阅读(263)  评论(0)    收藏  举报