spring boot 2.3.12.RELEASE
JDK 1.8
IntelliJ IDEA開發工具
Redis哨兵主從搭建
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>
關於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】,否則不需要新增。
該設定檔可以直接載入啟動類別中,因為啟動類別也是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; }
@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哨兵主從怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!