关于SpringBoot 集成 Redis

来源:互联网 发布:淘宝网不能加购物车 编辑:程序博客网 时间:2024/06/02 06:41

关于SpringBoot 集成 Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API.

application.properties添加配置文件

<!-- redis的jar包 springboot集成的starter-redis --><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-redis</artifactId></dependency> 

application.properties添加配置文件

# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0  # Redis服务器地址  (我配的是本地地址)spring.redis.host=127.0.0.1# Redis服务器连接端口spring.redis.port=6379  # Redis服务器连接密码(默认为空)spring.redis.password=123456# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active=8  # 连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.pool.max-wait=-1  # 连接池中的最大空闲连接spring.redis.pool.max-idle=8  # 连接池中的最小空闲连接spring.redis.pool.min-idle=0  # 连接超时时间(毫秒)spring.redis.timeout=0 

相关的配置java类

import java.util.ArrayList;import java.util.List;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;import redis.clients.jedis.JedisShardInfo;import redis.clients.jedis.ShardedJedisPool;@Configuration //自动扫描public class RedisCacheConfiguration {        Logger logger = LoggerFactory.getLogger(RedisCacheConfiguration.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;    public JedisPoolConfig getconfig() {        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();        jedisPoolConfig.setMaxIdle(maxIdle);        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);        jedisPoolConfig.setMaxTotal(100);        return jedisPoolConfig;    };    @Bean    public JedisPool redisPoolFactory() {        JedisPool jedisPool = new JedisPool(getconfig(), host, port, timeout, password);        logger.info("【redis】JedisPool注入成功----------redis地址:" + host + ":" + port);        return jedisPool;    }    @Bean    public ShardedJedisPool shardedJedisPoolFactory() {        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();        JedisShardInfo info = new JedisShardInfo(host, port);        info.setPassword(password);        shards.add(info);        ShardedJedisPool shardedJedisPool = new ShardedJedisPool(getconfig(), shards);        logger.info("【redis】ShardedJedisPool注入成功---------");        return shardedJedisPool;    }}

注意事项

如果springboot的启动类在此类的外层,则不需要引入此类。否则再启动类里面加入@import(RedisCacheConfiguration.class),以便于有效加载redis相关配置。

使用实例:

    @Autowired    private   JedisPool jedisPool;    @Autowired    private   ShardedJedisPool shardedJedisPool;
以上内容本人已亲测,如果有什么改进的地方,还望大家都多指出。欢迎参考。
原创粉丝点击