一、准备工作
首先确保:
- Linux 服务器上已安装并启动 Redis 服务
- Redis 已配置允许远程连接(修改 redis.conf 文件)
- 开发环境(IDEA)已准备好
二、Spring Boot 项目配置 Redis
1. 添加依赖
在pom.xml
中添加 Redis 相关依赖:
<!-- Spring Data 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>
2. 配置 Redis 连接信息
在application.properties
或application.yml
中配置:
注:host地址取决于虚拟机,密码取决于你的设置
spring:data:#在idea后面几个版本需要添加data,否则无法连接redis:host: 192.168.253.131 # 虚拟机的IP地址port: 6379password: 123456timeout: 5000lettuce:pool:max-active: 8max-idle: 8min-idle: 2max-wait: 2000ms
3、简单的测试类(String)
@SpringBootTest
class SpringRedisApplicationTests {@Autowiredprivate RedisTemplate redisTemplate;@Testvoid contextLoads() {redisTemplate.opsForValue().set("pet","dog");Object name=redisTemplate.opsForValue().get("pet");System.out.println(name);}}
这时运行会出现乱码问题,因此要实现序列化。
三、序列化与反序列化
1、工厂序列化方式
实现方式
JDK 序列化是RedisTemplate
的默认方式,依赖 Java 自带的序列化机制。
具体代码:
@Bean
public RedisTemplate<String, 0bject> redisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException{
//创建Template
RedisTemplate<String,Object>redisTemplate = new RedisTemplate<>();
//设置连接工厂
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
//key和hashKey采用string序列化
redisTemplate.setKeySerializer(RedisSerializer.string());
redisTemplate.setHashKeySerializer(RedisSerializer.string());
//value和hashValue采用JSON序列化
redisTemplate.setValueSerializer(isonRedisSerializer);
redisTemplate.setHashValueSerializer(isonRedisSerializer);
return redisTemplate;
}
2、自定序列化方式
实现方式
JSON 序列化通过GenericJackson2JsonRedisSerializer
或Jackson2JsonRedisSerializer
实现,将对象转为 JSON 字符串存储。需引入 Jackson 依赖(Spring Boot 默认已包含)。
具体代码: