添加依赖
在 /pom.xml 文件中写入以下代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
redis连接配置
在 /src/main/resources/application.yml 文件中写入以下代码
spring:
# Redis 配置
redis:
# Redis 服务器地址
host: localhost
# Redis 端口(默认6379)
port: 6379
# 密码(如果没设置密码,注释掉这行)
password:
# 数据库索引(默认0,Redis 有16个数据库,0-15)
database: 0
# 连接超时时间
timeout: 10000ms
# 连接池配置(推荐配置,避免频繁创建连接)
lettuce:
pool:
# 最大活跃连接数
max-active: 8
# 最大空闲连接数
max-idle: 8
# 最小空闲连接数
min-idle: 0
# 最大等待时间(-1 表示无限制)
max-wait: -1ms
Redis 配置类 RedisConfig.java
在 /src/main/java/com/example/xys1/config/RedisConfig.java 文件中写入以下代码
package com.example.xys1.config;
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;
@Configuration
public class RedisConfig {
/**
* 自定义 RedisTemplate,使用 JSON 序列化
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
// 创建 RedisTemplate 对象
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
// 设置连接工厂
redisTemplate.setConnectionFactory(connectionFactory);
// 配置序列化器(解决乱码问题)
// 1. 字符串序列化器(key 和 hash key 使用)
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// 2. JSON 序列化器(value 和 hash value 使用)
GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// 设置 key 的序列化方式
redisTemplate.setKeySerializer(stringRedisSerializer);
// 设置 hash key 的序列化方式
redisTemplate.setHashKeySerializer(stringRedisSerializer);
// 设置 value 的序列化方式
redisTemplate.setValueSerializer(jsonRedisSerializer);
// 设置 hash value 的序列化方式
redisTemplate.setHashValueSerializer(jsonRedisSerializer);
// 初始化 RedisTemplate
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
使用redis
在 /src/main/java/com/example/xys1/controller/XysController.java 文件中写入以下代码
package com.example.xys1.controller;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
// 标识为控制器,且所有方法返回值直接转为 JSON(无需视图解析)
@RestController
@RequestMapping("/xys")
public class XysController {
@Resource
private RedisTemplate<String, Object> redisTemplate;
@PostMapping("/test3")
public Map<String, Object> test3() {
redisTemplate.opsForValue().set("aaa", "i-am-aaa");
Map<String, Object> result = new HashMap<>();
result.put("name", "/xys/test3");
return result;
}
@PostMapping("/test4")
public Map<String, Object> test4() {
Map<String, Object> result = new HashMap<>();
result.put("name", "/xys/test4");
result.put("aaa-value", redisTemplate.opsForValue().get("aaa"));
return result;
}
}