## 导入依赖
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
</dependency>

配置文件

spring:
  redis:
    port: 6379
    host: 192.168.255.128
    password: root
    jedis:
      pool:
        max-idle: 6 #最大空闲数
        max-active: 10 #最大连结数
        min-idle: 2 #最小空闲数
      timeout: 2000 #连接超时时间

redisConfig配置类 将redisPool 注入IOC容器

@Configuration
public class JedisConfig {

    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.jedis.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 jedisPool(){
        JedisPoolConfig jedisPoolConfig =new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMaxTotal(maxActive);
        jedisPoolConfig.setMinIdle(minIdle);

        JedisPool jedisPool =new JedisPool(jedisPoolConfig,host,port,timeout,password);
        logger.info("jedisPool连接成功:"+host+"\t"+port);
        return jedisPool;
    }
}

service层

@Service
@Log
public class UserServiceImpl implements UserService {

    @Autowired
    private JedisPool jedisPool;    //Jedis连接池
    /**
     * Redis String 类型
     * 需求:用户输入一个key
     * 先判断Redis中进行查询
     *  如果存在,在Redis中进行查询
     *  如果不存在,在Mysql查询,将结果赋给Redis,并返回
     */
    @Override
    public String getString(String key) {
        String val=null;
        //获取jedis
        Jedis jedis = jedisPool.getResource();
        //判断jedis是否存在
        if(jedis.exists(key)){
            log.info("查询Redis中的数据");
            val= jedis.get(key);
        }else {
            String sql ="java培训班";
            log.info("查询的是musql数据库");
            val= jedis.set(key,sql);
        }
        //关闭连接
        jedis.close();
        return val;
    }
}

测试

@SpringBootTest
class BootJedisApplicationTests {
	@Autowired
	private UserService userService;

	@Test
	void jedisPool() {
		String name = userService.getString("name");
		System.out.println(name);
	}
}

连接成功

2020-07-13 16:07:00.729  INFO 12520 --- [           main] c.e.bootjedis.BootJedisApplicationTests  : Starting BootJedisApplicationTests on PV-8 with PID 12520 (started by Administrator in C:\Users\Administrator\Desktop\boot-jedis)
2020-07-13 16:07:00.730  INFO 12520 --- [           main] c.e.bootjedis.BootJedisApplicationTests  : No active profile set, falling back to default profiles: default
2020-07-13 16:07:01.272  INFO 12520 --- [           main] c.example.bootjedis.config.JedisConfig   : jedisPool连接成功:192.168.255.128	6379
2020-07-13 16:07:01.549  INFO 12520 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-07-13 16:07:01.753  INFO 12520 --- [           main] c.e.bootjedis.BootJedisApplicationTests  : Started BootJedisApplicationTests in 1.262 seconds (JVM running for 1.973)
2020-07-13 16:07:01.912  INFO 12520 --- [           main] c.e.bootjedis.service.UserServiceImpl    : 查询Redis中的数据
zhangsan
2020-07-13 16:07:01.926  INFO 12520 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐