# redis-cache
**Repository Path**: xiaodeng98/redis-cache
## Basic Information
- **Project Name**: redis-cache
- **Description**: redis数据的自动缓存
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-18
- **Last Updated**: 2021-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#### 1.依赖
```
com.dzq.study
redis-cache
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
```
#### 2.使用
```java
import com.dzq.study.cache.anno.RedisCache;
import com.dzq.study.entity.User;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class RedisCacheService {
@RedisCache(prefixKey = "study:users",spelKey = "#user.name + ':' + #user.sex",resultType = User.class)
public List users(User user){
ArrayList users = new ArrayList<>();
if (user.isFlag()){
return users;
}
users.add(User.builder().name(user.getName()).build());
return users;
}
@RedisCache(prefixKey = "study:user",spelKey = "#user.name + ':' + #user.sex",resultType = User.class)
public User user(User user){
if (user.isFlag()){
return null;
}
return User.builder().name(user.getName()).build();
}
}
```
#### 3.注解说明
```java
public @interface RedisCache {
/**
* 缓存key,注意格式,使用同一符号进行分割,方便redis key的管理
* @return
*/
String prefixKey();
/**
* 过期时间
* @return
*/
int expire() default 1;
/**
* 过期时间类型
* @return
*/
TimeUnit timeUtil() default TimeUnit.HOURS;
/**
* 是否过期,false不做过期限制
* @return
*/
boolean expireFlag() default true;
/**
* redis数据类型,具体的往redis中存放数据类型(string/hash/list/set/zset)
* 如需存放string以外的形式,请实现com.dzq.study.cache.provider.RedisProvider
* RedisDataTypeEnum getDataType();返回对应的枚举
* @return
*/
RedisDataTypeEnum dataType() default RedisDataTypeEnum.string;
/**
* 返回类型,service返回的数据类型,对象或List都输入返回对象的字节码对象
* @return
*/
Class resultType();
/**
* spel表达式,通过参数拼接为一个特定的key。例如spelKey="#name + ':' + #sex"
* @return
*/
String spelKey();
}
```