1. 引入Redis
在使用SpringBoot引入Redis之前,需要在pom.xml
文件中添加Redis依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
添加依赖后,需要在application.properties
文件中添加Redis相关的配置:
spring.redis.host=127.0.0.1
spring.redis.port=6379
# 如果Redis没有设置密码,则无需添加该配置,否则需要添加
spring.redis.password=redis_password
完成以上配置后,就可以使用Redis了。
2. 使用Jedis操作Redis
在SpringBoot中,可以通过Jedis来操作Redis。在使用Jedis之前,需要在pom.xml
文件中添加Jedis依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.5.3</version>
</dependency>
添加依赖后,就可以使用Jedis操作Redis了。下面是一个使用Jedis实现Redis操作的示例:
2.1. 连接Redis
首先需要与Redis建立连接,可以通过以下方式连接Redis:
Jedis jedis = new Jedis(host, port);
jedis.auth(password); // 如果Redis设置了密码,则需要在连接时进行认证
2.2. 存储数据
存储数据可以使用以下方式:
jedis.set("key", "value");
其中key
为存储数据的键,value
为存储的值。
2.3. 获取数据
获取数据可以使用以下方式:
String value = jedis.get("key");
其中key
为要获取的数据的键。
2.4. 删除数据
删除数据可以使用以下方式:
jedis.del("key");
其中key
为要删除的数据的键。
3. 使用Spring的RedisTemplate操作Redis
除了使用Jedis操作Redis外,还可以使用Spring提供的RedisTemplate
来操作Redis。在使用RedisTemplate
之前,需要在application.properties
文件中添加以下配置:
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=redis_password
# 配置RedisTemplate
spring.redis.timeout=3000 # 连接超时时间
spring.redis.jedis.pool.max-active=8 # 连接池最大连接数
spring.redis.jedis.pool.max-wait=-1 # 连接池最大阻塞等待时间
spring.redis.jedis.pool.max-idle=8 # 连接池最大空闲连接数
spring.redis.jedis.pool.min-idle=0 # 连接池最小空闲连接数
添加配置后,需要创建RedisTemplate
实例,可以使用以下配置类实现:
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置序列化方式
RedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
// 设置RedisTemplate关联的Value序列化方式
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
// 设置RedisTemplate关联的Key序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
创建好RedisTemplate
实例后,就可以使用RedisTemplate
来操作Redis了。下面是一个使用RedisTemplate
实现Redis操作的示例:
3.1. 存储数据
存储数据可以使用以下方式:
ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
valueOperations.set("key", "value");
其中key
为存储数据的键,value
为存储的值。
3.2. 获取数据
获取数据可以使用以下方式:
ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
String value = (String) valueOperations.get("key");
其中key
为要获取的数据的键。
3.3. 删除数据
删除数据可以使用以下方式:
redisTemplate.delete("key");
其中key
为要删除的数据的键。
4. 总结
本文介绍了SpringBoot引入Redis并使用Jedis和RedisTemplate
来操作Redis的方法。在实际应用中,可以根据自己的需求选择适合的方法。