引入Redis依赖
<!-- 指定SpringBoot版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<!-- redis连接驱动 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
单Redis连接配置信息
spring:
redis:
database: 0 #redis数据库编号,存在0-15共16个数据库
host: 127.0.0.1
port: 6379
password: 888888
timeout: 10000ms #请求超时时间,超过此值则提示连接超时异常
jedis:
pool:
max-active: 32 #jedis最大连接数,超过此值则提示获取不到连接异常
max-wait: 10000ms #jedis最大等等时间,超过此值则提示连接超时异常
max-idle: 32 #jedis最大等待连接数
min-idle: 0 #jedis最小等待连接数
(1)测试代码
@RequestMapping("redis")
@RestController
public class RedisDemo {
@Autowired
private StringRedisTemplate redisTemplate;
@RequestMapping("getKey/{key}")
public String getKey(@PathVariable String key){
return redisTemplate.opsForValue().get(key);
}
@RequestMapping("setKey/{key}/{value}")
public String setKey(@PathVariable String key, @PathVariable String value){
redisTemplate.opsForValue().set(key, value);
return "success";
}
}
(2)访问测试地址
哨兵集群连接配置信息
spring:
redis:
sentinel:
master: mymaster #指定maser名称
nodes: # 指定redis-sentinel集群信息
- 127.0.0.1:16379
- 127.0.0.1:26379
- 127.0.0.1:36379
password: 888888 #3台redis密码设置成一样,这么配置可行
此配置的前提是:三台redis密码相同。如果不相同呢,我也不知道怎么配置,知道的大佬可以评论区留言,在此谢过!
哨兵集群连接配置好后,如何让项目实现读写分离呢?
在启动类中加上以下代码,可自动实现读写分离。
/**
* 配置Redis读取策略,是一个枚举:
* MASTER 从主节点读取
* MASTER_PREFERRED 优先从master节点读取,master不可用才读取从节点
* SLAVE 从节点读取
* SLAVE_PREFERRED 优先从节点读取,所有的从节点不可用,才读master
* NEAREST
* @return
*/
@Bean
public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
return new LettuceClientConfigurationBuilderCustomizer() {
@Override
public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {
clientConfigurationBuilder.readFrom(ReadFrom.SLAVE_PREFERRED);
}
};
};