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相关配置时

增加lettuce相关配置

同时,使用连接池,要依赖commons-pool2
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${version}</version>
</dependency>
如果没有引入,会报错

如果你想使用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的存储目的地的时候,

RedisManager继承自WorkAloneRedisManager

使用单节点的redis,也可以使用lvs或者haproxy负载均衡软件达到cluster的效果,但是IRedisManager也提供了其他的实现

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"对,至少含有一对
spring.redis.cluster.max-redirects:获取结果失败,最大的重定向次数
spring.redis.lettuce.pool.max-active: 1000 #连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-idle: 10 # 连接池中的最大空闲连接
spring.redis.lettuce.pool.min-idle: 5 # 连接池中的最小空闲连接
spring.redis.lettuce.pool.max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
网友评论