spring boot整合redis的相关记录(jedis)

spring boot现在越来越多的项目在使用,掌握spring boot 整合相关工具的技术,变得越来越重要。这里记录下自己整合redis的一些理解,目前只是单机版,没有用到哨兵模式以及集群。使用的是jedis技术。

首先需要在配置文件中配置数据,如host,port,password,timeout,database等等属性,截图如下

这里需要说明一下,上面的数据库模块,是必须要有的,不然项目无法启动,具体的原因,我也没有搞懂,如果不加上数据库的数据源,会报如下错误:

redis本质上还是一种数据库,所以,我们需要数据库连接,所以,就要数据库连接池。所以,这一步,我们建一个配置类,用于配置jedispool,具体配置类的内容,如下截图:

package com.example.demo.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

@Configuration
public class PoolConfig {

	private Logger logger = LoggerFactory.getLogger(PoolConfig.class);
	
	@Value("${spring.redis.host}")
	private String host;
	
	@Value("${spring.redis.port}")
	private int port;
	
	@Value("${spring.redis.database}")
	private int database;
	
	@Value("${spring.redis.timeout}")
	private int timeout;
	
	@Value("${spring.redis.pool.max-active}")
	private int maxActive;
	
	@Value("${spring.redis.pool.max-wait}")
	private Long maxWait;
	
	@Value("${spring.redis.pool.max-idle}")
	private int maxIdle;
	
	@Value("${spring.redis.pool.min-idle}")
	private int minIdle;
	
	@Bean
	public JedisPool getPool() {
		JedisPoolConfig poolConfig = new JedisPoolConfig();
		poolConfig.setMaxIdle(maxIdle);
		poolConfig.setMinIdle(minIdle);
		poolConfig.setMaxWaitMillis(maxWait);
		poolConfig.setMaxTotal(maxActive);
		
		logger.info("jedisPool配置成功");
		logger.info("reids地址"+host+":"+port);
		JedisPool pool = new JedisPool(poolConfig, host, port, timeout, null);
		return pool;
	}
}

此时,启动springboot时,容器当中就有jedispool类了,要做的就是注入到其他需要使用的地方。一般到这时,我们都会配置一个jedis工具类,用来封装获取jedis,实现一些特殊的功能等这些步骤。自己做了一个非常简单的,如下:

package com.example.demo.config;

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
	private JedisPool pool;
	
	public void set(String key, String value) {
		Jedis jedis = pool.getResource();
		jedis.set(key, value);
	}
	
	public String get(String key) {
		Jedis jedis = pool.getResource();
		return jedis.get(key);
	}
}

这时,就可以用了。。OK,到这步,已经完成了。这只是初版的单机的版本,后续再继续研究集群版本的。。

猜你喜欢

转载自blog.csdn.net/weixin_41401929/article/details/81203103