一、準備工作
首先確保:
- 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 默認已包含)。
具體代碼: