使用Spring Data Redis提供的RedisTemplate类,该类提供封装操作redis数据库中各种数据类型的operate接口。
-
引入依赖
引入redis起步依赖和连接池
<!--redis起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
-
修改配置文件
在yml配置文件中加入redis连接配置和连接池配置
spring:
data:
redis:
host: 127.0.0.1 # ip地址
port: 6379 # 端口号
password: 123456 # 密码
database: 0 # 数据库索引
lettuce:
pool:
max-active: 8 # 最大连接,默认为8
max-idle: 8 # 最大空闲连接,默认为8
min-idle: 0 # 最小空闲连接,默认为0
max-wait: -1 # 最大等待连接时间,默认为-1,不限时间
-
序列化配置类
使用RedisConfiguration序列化配置类,替换默认序列化方式
import lombok.extern.slf4j.Slf4j;
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.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Slf4j
@Configuration // 序列化配置类
public class RedisConfiguration {
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate redisTemplate = new RedisTemplate();
// key序列化
redisTemplate.setKeySerializer(new StringRedisSerializer());
// value序列化
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
// hash类型 key序列化
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
// hash类型 value序列化
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
// 注入连接工厂
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
}
-
获取操作接口
注入bean对象
@Autowired
private RedisTemplate redisTemplate;
string字符串操作
ValueOperations valueOperations = redisTemplate.opsForValue(); // 字符串
hash哈希操作
HashOperations hashOperations = redisTemplate.opsForHash(); // 哈希
list列表操作
ListOperations listOperations = redisTemplate.opsForList(); // 列表
set集合操作
SetOperations setOperations = redisTemplate.opsForSet(); // 集合
zset有序集合操作
ZSetOperations zSetOperations = redisTemplate.opsForZSet(); // 有序集合
通用操作,直接使用RedisTemplate,例如:
Set keys = redisTemplate.keys("*");