# 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(); } ```