如何配置SpringBoot连接Jedis
时间: 2023-08-05 22:04:50 浏览: 71
springboot-jedis.zip
首先,你需要在项目的pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
然后在你的应用程序.properties或.yml文件中添加以下配置:
```properties
# Redis
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
```
其中,spring.redis.host和spring.redis.port是必需的,你需要将它们配置为你的Redis服务器的主机名和端口。如果你的Redis服务器有密码保护,则需要在spring.redis.password中指定密码。
接下来,你需要创建一个JedisConnectionFactory bean:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
@Configuration
public class RedisConfig {
@Value("${spring.redis.host}")
private String redisHostName;
@Value("${spring.redis.port}")
private int redisPort;
@Value("${spring.redis.password}")
private String redisPassword;
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConFactory
= new JedisConnectionFactory();
jedisConFactory.setHostName(redisHostName);
jedisConFactory.setPort(redisPort);
jedisConFactory.setPassword(redisPassword);
return jedisConFactory;
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
final RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.setValueSerializer(new GenericToStringSerializer<>(Object.class));
return redisTemplate;
}
}
```
在这个配置类中,我们定义了一个JedisConnectionFactory bean,它使用我们在配置文件中指定的主机名、端口和密码来连接Redis服务器。我们还创建了一个RedisTemplate bean,它使用JedisConnectionFactory来连接Redis,并使用GenericToStringSerializer序列化值。
现在你就可以在你的Spring Boot应用程序中使用Redis了。例如,你可以注入RedisTemplate bean并使用它来操作Redis:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class MyService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setValue(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object getValue(String key) {
return redisTemplate.opsForValue().get(key);
}
}
```
在这个例子中,我们注入了RedisTemplate bean,并使用它来设置和获取Redis中的键值对。
阅读全文