Spring Boot中redis的配置实例

本文介绍了如何在Spring Boot项目中配置并使用Redis作为数据缓存。内容包括添加spring-boot-starter-redis依赖,配置生产与开发环境的Redis连接参数,创建Redis配置类以及展示一个简单的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis是目前业界使用最广泛的内存数据存储,我们常用作数据缓存。相比memcached,Redis支持更丰富的数据结构,例如hash, list, set等,同时它也支持数据持久化。而且在一个spring Boot项目中,因为spring Boot封装自动化的特性,redis连接池的配置也相当简单。

配置步骤如下:

1、在pom文件中添加依赖

   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-redis</artifactId>
   </dependency>

引入spring-boot-starter-redis后,我们就可以通过配置RedisConnectionFactory中的相关参数去实现连接redis service。RedisConnectionFactory是一个接口,有4个具体的实现类。

2、在配置文件中添加配置数据

这里配置了生产环境和开发环境,项目启动后根据环境变量自动选择连接。

# 端口号
redis.port.production =16379
redis.port.develop =16379
redis.port=${redis.port.${ftcsp_env}}

# ip
redis.ip.production =192.168.100.66
redis.ip.develop =119.29.162.88
redis.ip=${redis.ip.${ftcsp_env}}

# 密码
redis.pass.production =123456
redis.pass.develop =123456
redis.pass=${redis.pass.${ftcsp_env}}

# redis 配置(在配置类中使用)

# Redis 数据库索引(默认为零)
spring.redis.database=0

# Redis服务器地址
spring.redis.host=${redis.ip}

# Redis服务器连接端口
spring.redis.port=${redis.port}

# Redis服务器连接密码
spring.redis.password=${redis.pass}

# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=-1

# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1

# 连接池中的最大空闲连接(使用负值表示没有限制)
spring.redis.pool.max-idle=-1

# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0

# 连接超时时间(毫秒)
spring.redis.timeout=0

3、建立redis配置类

在配置文件中配置好数据后,还需要建立一个redis的配置类,主要用来加载配置文件中的相关参数(具体配什么数据按实际需求)。

/**
 * 
 * <pre>
 * <pre>
 * redis数据库连接池配置
 * </pre>
* 
*<pre>
* @author chendengzhu  chendengzhu@foresee.com.cn
 * 修改记录
 * </pre>
 */
@Configuration
@EnableCaching
public class RedisConfiguration {
    Logger logger = LoggerFactory.getLogger(RedisConfiguration.class);
    //服务器地址
    @Value("${spring.redis.host}")
    private String host;

    //端口号
    @Value("${spring.redis.port}")
    private int port;

    //超时时间
    @Value("${spring.redis.timeout}")
    private int timeout;

    //最大连接数
    @Value("${spring.redis.pool.max-idle}")
    private int maxIdle;

    //最大等待时间
    @Value("${spring.redis.pool.max-wait}")
    private long maxWaitMillis;

    //密码
    @Value("${spring.redis.password}")
    private String password;

    @Bean
    public JedisPool redisPoolFactory() {
        logger.info("jedis连接成功!!");
        logger.info("redis地址:" + host + ":" + port);
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);

        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);

        return jedisPool;
    }

}

做完这步,redis连接池已配置完成,下面是一个使用例子:

import redis.clients.jedis.Jedis;
import redis.clients.util.Pool;
@Service
public class RobotRestServiceImpl implements RobotRestService {
     private final static Logger    LOG    = LoggerFactory.getLogger(RobotRestServiceImpl.class);
     @Autowired
     private Pool<Jedis> jedisPool;

     //保存方法,保存的数据结构为hash
     public boolean hset(String key, Map<String, String> hash) {  
        Jedis jedis = null;  
        boolean isBroken = false;  
        try {  
            jedis = this.getJedis();  
            jedis.hmset(key, hash); 
            //设置生存时间
            jedis.expire(key, 3600);
            LOG.info("redis保存成功");
            return true;
        }
        catch (Exception e) {
            isBroken = true; 
            LOG.info("redis保存失败");
            return false;  
        }  
        finally {
            release(jedis, isBroken);  
        }  
    }
}

拜拜QAQ!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值