springboot2使用redis相关配置

1.使用单节点的redis做缓存,整合shiro将认证信息,授权信息,以及session存储到redis当中

连接使用的数据库索引,默认为0

spring.redis.database=0

redis服务ip地址

spring.redis.host=192.168.220.10

redis服务连接端口号

spring.redis.port=6379

redis服务连接密码

spring.redis.password=123456

连接到redis的超时时间,解析结果为Duration

spring.redis.timeout=10000ms

redis连接url,比host,port,password的优先级高,例如下面
redis://user:password@example.com:6379

spring.redis.url

是否支持ssl

spring.redis.ssl

SpringBoot2.0默认采用Lettuce客户端来连接Redis,移除可jedis-client包

默认是不使用连接池的,只有配置spring. redis.lettuce.pool下的相关属性的时候才可以使用到连接池

最大空闲连接数,默认值为8,如果为负值表示没有限制

spring.redis.lettuce.pool.max-idle=8

从连接池获取连接的超时时间,如果达到该时间则抛出异常,负值表示没有限制,默认值为-1,解析结果为Duration

spring.redis.lettuce.pool.max-wait=10000ms

连接池的最小空闲连接数,只有是正值的时候才有效果

spring.redis.lettuce.pool.min-idle=0

连接池的最大连接数,如果是负值表示没有限制

spring.redis.lettuce.pool.max-active=20

没有lettuce相关配置时

<groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>${version}</version> </dependency>

如果没有引入,会报错

图片.png

如果你想使用jedis客户端,则需要配置spring.redis.jedis.pool的相关内容,也可以不配置使用其默认的配置,但是需要注意排除lettuce依赖,引入jedis依赖,否则使用的lettuce客户端

   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
        <exclusions>
            <exclusion>
                <groupId>io.lettuce</groupId>
                <artifactId>lettuce-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>${version}</version>
    </dependency>

jedis的客户端默认增加了pool的连接池依赖包,所以Jedis默认你配置与否都会使用连接池,而lettuce则需要配置文件中配置一下
在整合shiro当缓存或者作为session的存储目的地的时候,

图片.png
RedisManager的相关配置可以查看其相关的字段,包含password(连接密码),timeout(timeout for jedis try to connect to redis server, not expire time! In milliseconds),host(DEFAULT_HOST = "127.0.0.1:6379")

2.使用redis cluster做缓存,推荐使用lettuce客户端,并使用连接池

连接使用的数据库索引,默认为0

spring.redis.database=0

redis服务连接密码

spring.redis.password=123456

连接到redis的超时时间,解析结果为Duration

spring.redis.timeout=10000ms

是否支持ssl

spring.redis.ssl
spring.redis.cluster.nodes:逗号分隔的"host:port"对,至少含有一对