mybatisplus如何使用redis
时间: 2024-10-12 09:11:35 浏览: 36
SpringBoot项目 MybatisPlus使用 Redis缓存.zip
MyBatisPlus是一个基于MyBatis的简化整合工具,它本身并不直接支持Redis操作,但你可以通过第三方库如Jedis、Spring Data Redis等将MyBatisPlus与Redis集成。以下是基本步骤:
1. 添加依赖:首先,在你的项目中引入需要的Redis客户端库,例如Spring Boot项目可以添加`spring-boot-starter-data-redis`。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
2. 配置Redis:在`application.properties`或`application.yml`文件中配置Redis服务器连接信息。
```properties
spring.redis.host=your-redis-host
spring.redis.port=6379
```
3. 创建Redis缓存:利用MyBatisPlus提供的动态代理功能,你可以创建一个RedisTemplate的代理对象,并将其注入到实体类或Service层,比如:
```java
@Slf4j
public class CacheUtil {
private static final String REDIS_TEMPLATE = "redisTemplate";
private static JedisCacheManager cacheManager;
@Autowired
public void setRedisTemplate(JedisConnectionFactory factory) {
// 初始化RedisTemplate并设置缓存管理器
cacheManager = new JedisCacheManager(factory);
cacheManager.set evictionConfig(new TtlEvictionConfiguration(30, TimeUnit.MINUTES));
}
public static Object get(Object key) {
return cacheManager.getCache(REDIS_TEMPLATE).get(key);
}
public static void set(Object key, Object value) {
cacheManager.getCache(REDIS_TEMPLATE).put(key, value);
}
}
```
4. 在Service或Mapper中使用Redis:现在你可以使用`CacheUtil`提供的`get`和`set`方法来存储和检索数据到Redis,例如查询前先检查缓存。
```java
@Service
public class YourService {
private final CacheUtil cacheUtil;
public YourService(CacheUtil cacheUtil) {
this.cacheUtil = cacheUtil;
}
@Cacheable(value = "yourCacheKey", condition = "#id > 0")
public YourEntity findById(int id) {
// 查询数据库,如果缓存中有则返回,否则查询并放入缓存
YourEntity entity = redisUtil.get(id); //假设你有redisUtil字段引用CacheUtil.get
if (entity == null) {
entity = yourRepository.findById(id); //数据库查询
cacheUtil.set(entity.getId(), entity);
}
return entity;
}
}
```
阅读全文