redis的master是什么?请详细讲解一下,并给出Springboot例子代码
时间: 2024-10-17 16:12:36 浏览: 14
springboot整合redis代码
Redis的Master是指主节点,它是Redis分布式架构的核心组成部分之一。在集群模式下,Master负责处理客户端的读写请求,并维护数据的一致性。当有新的写操作发生时,Master会将更新的数据写入内存并同步到从节点(Slave)。主节点的主要职责包括:
1. 接受客户端请求:Master接收来自客户端的所有读写命令,如SET、GET等。
2. 数据存储和更新:Master负责存储数据库中的所有键值对,并保证数据的持久化,如RDB和AOF两种持久化策略。
3. 分布式复制:通过心跳检测,Master定期向 Slave发送数据,确保数据的一致性。
Spring Boot 中配置 Redis Master 的一个简单示例:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Autowired
private Environment env;
@Bean
public RedisConnectionFactory factory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName(env.getProperty("spring.redis.master.host")); // 设置 Master 地址
config.setPort(Integer.parseInt(env.getProperty("spring.redis.master.port", "6379"))); // 设置端口
return new JedisConnectionFactory(config);
}
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
// 设置序列化规则,这里假设我们只用String类型
template.setValueSerializer(new StringRedisSerializer());
return template;
}
}
```
在这个例子中,`env` 是Spring的环境变量提供者,它允许你从外部配置文件获取Redis Master的主机名和端口号。然后,配置了连接工厂和RedisTemplate,用于与Redis Master建立连接和进行数据操作。
阅读全文