springboot 集成redis哨兵主從的實現

一、環境

spring boot 2.3.12.RELEASE
JDK 1.8
IntelliJ IDEA開發工具
Redis哨兵主從搭建

二、POM文件

pom文件其他忽略,隻展示和redis有關系統的依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 重點:redis依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 對象池框架,redis依賴 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

三、application.yml配置

關於springboot的配置忽略
spring 約定大於配置,對於默認的就可以不用再配置文件中體現

spring:
  redis:
    # redis庫
    database: 1
    # redis節點的密碼
    password: jwssw
    # 集群配置
    sentinel:
      # 集群哨兵節點配置,多個節點之間用英文逗號分割
      nodes: 127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381
      # 主節點名稱
      master: mymaster
      # 密碼
      password: jwssw

註意如果redis的sentinel配置文件增加瞭requirepass(訪問秘鑰),其sentinel節點下必須加上【password】,否則不需要添加。

四、reidsTemplate配置

該配置文件可以直接加載啟動類中,因為啟動類也是springboot的一種配置類

/**
 * 方法描述: 初始化redis連接
 *
 * @param factory redis連接工廠
 * @return {@link RedisTemplate}
 */
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
    // 新建redisTemplate對象
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    // 設置工廠
    template.setConnectionFactory(factory);
    // 鍵值類型
    template.setKeySerializer(new StringRedisSerializer());
    template.setValueSerializer(new StringRedisSerializer());
    // 返回redisTemplate對象
    return template;
}

五、單元測試(JUnit4)

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {
    // 註入redisTemplate對象
    @Autowired
    RedisTemplate<String, Object> redisTemplate;

    @Test
    public void setOrGetTest() {
        // redis鍵值 
        String redisKey = "name";
        // 向redis存放內容
        redisTemplate.opsForValue().set(redisKey, "張三" + new Random().nextInt());
        // 獲取redis中的內容並打印
        System.out.println(redisTemplate.opsForValue().get(redisKey));
    }
}

到此這篇關於springboot 集成redis哨兵主從的實現的文章就介紹到這瞭,更多相關springboot redis哨兵主從內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: