|  |  |  | 
|---|
|  |  |  | package com.qxueyou.scc.base.service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import org.springframework.data.redis.core.RedisTemplate; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Collection; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  | import java.util.concurrent.TimeUnit; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 缓存服务接口 | 
|---|
|  |  |  | * 缓存服务接口 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @author 德虎 | 
|---|
|  |  |  | * @author 德虎 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public interface ICacheService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据key值获取指定类型对象 | 
|---|
|  |  |  | * 根据key值获取指定类型对象 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @param cls | 
|---|
|  |  |  | *            对象类型 | 
|---|
|  |  |  | *            对象类型 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | <T> T get(String key, Class<T> cls); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据key值获取指定类型对象 | 
|---|
|  |  |  | * 根据key值获取指定类型对象 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | <T> T get(String key); | 
|---|
|  |  |  | 
|---|
|  |  |  | Long decr(String key); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据key值获取指定类型对象 | 
|---|
|  |  |  | * 根据key值获取指定类型对象 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param keys | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | 
|---|
|  |  |  | Map<String, Object> getBulk(String... keys); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 将对象缓存到缓存池 | 
|---|
|  |  |  | * 将对象缓存到缓存池 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @param expiredTime | 
|---|
|  |  |  | *            超时时间,单位秒 | 
|---|
|  |  |  | *            超时时间,单位秒 | 
|---|
|  |  |  | * @param obj | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void set(String key, int expiredTime, Object obj); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 将对象缓存到缓存池,永不过期 | 
|---|
|  |  |  | * 将对象缓存到缓存池,永不过期 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @param obj | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void set(String key, Object obj); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 将对象缓存到缓存池 | 
|---|
|  |  |  | * 将对象缓存到缓存池 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            cache名称 | 
|---|
|  |  |  | *            cache名称 | 
|---|
|  |  |  | * @param hashKey | 
|---|
|  |  |  | *            键值 | 
|---|
|  |  |  | *            键值 | 
|---|
|  |  |  | * @param obj | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void set(String key, String hashKey, Object obj); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 将对象缓存到缓存池 | 
|---|
|  |  |  | * 将对象缓存到缓存池 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @param expiredTime | 
|---|
|  |  |  | *            超时时间,单位秒 | 
|---|
|  |  |  | *            超时时间,单位秒 | 
|---|
|  |  |  | * @param obj | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | *            要缓存的对象 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | boolean add(String key, int expiredTime, Object obj); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 将对象从缓存池删除 | 
|---|
|  |  |  | * 将对象从缓存池删除 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void delete(String key); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 追加缓存池的值 | 
|---|
|  |  |  | * 追加缓存池的值 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | *            对象key值 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void append(String key, String value); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取list缓存中key所有value值 | 
|---|
|  |  |  | * 获取list缓存中key所有value值 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | <T> List<T> lstAll(String key); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 向list缓存中放入值 | 
|---|
|  |  |  | * 向list缓存中放入值 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void lstRightPush(String key, Object value); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 向list缓存中放入值 | 
|---|
|  |  |  | * 向list缓存中放入值 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | <T> void lstRightPushAll(String key, Collection<T> values); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 从列表获取指定范围内的数据 | 
|---|
|  |  |  | * 从列表获取指定范围内的数据 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | * @param start | 
|---|
|  |  |  | 
|---|
|  |  |  | void lstClear(String key); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据key,index删除list中的value | 
|---|
|  |  |  | * 根据key,index删除list中的value | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void lstRemove(String key, Object value); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 通过key返回list中的值,并移除值 | 
|---|
|  |  |  | * 通过key返回list中的值,并移除值 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String lstLeftPop(String key); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 向hash缓存中存入对象 | 
|---|
|  |  |  | * 向hash缓存中存入对象 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | * @param hashKey | 
|---|
|  |  |  | 
|---|
|  |  |  | void putKeyForHash(Object key, Object hashKey, Object value); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 对key设置过其实键 | 
|---|
|  |  |  | * 对key设置过其实键 | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | * @param timeout | 
|---|
|  |  |  | * @param unit | 
|---|
|  |  |  | 
|---|
|  |  |  | void expire(String key, long timeout, TimeUnit unit); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 如果不存在就添加 | 
|---|
|  |  |  | * 如果不存在就添加 | 
|---|
|  |  |  | * @param key | 
|---|
|  |  |  | * @param obj | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | boolean setIfAbsent(String key, Object obj); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <K,V> RedisTemplate<K,V> template(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|