package com.qxueyou.scc.base.service; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; /** * »º´æ·þÎñ½Ó¿Ú * * @author µÂ»¢ * */ public interface ICacheService { /** * ¸ù¾ÝkeyÖµ»ñȡָ¶¨ÀàÐͶÔÏó * * @param key * ¶ÔÏókeyÖµ * @param cls * ¶ÔÏóÀàÐÍ * @return */ T get(String key, Class cls); /** * ¸ù¾ÝkeyÖµ»ñȡָ¶¨ÀàÐͶÔÏó * * @param key * ¶ÔÏókeyÖµ * @return */ T get(String key); Long getIncrValue(String key); Long incr(String key); Long decr(String key); /** * ¸ù¾ÝkeyÖµ»ñȡָ¶¨ÀàÐͶÔÏó * * @param keys * @return */ Map getBulk(String... keys); /** * ½«¶ÔÏ󻺴浽»º´æ³Ø * * @param key * ¶ÔÏókeyÖµ * @param expiredTime * ³¬Ê±Ê±¼ä£¬µ¥Î»Ãë * @param obj * Òª»º´æµÄ¶ÔÏó * @return */ void set(String key, int expiredTime, Object obj); /** * ½«¶ÔÏ󻺴浽»º´æ³Ø,ÓÀ²»¹ýÆÚ * * @param key * ¶ÔÏókeyÖµ * @param obj * Òª»º´æµÄ¶ÔÏó * @return */ void set(String key, Object obj); /** * ½«¶ÔÏ󻺴浽»º´æ³Ø * * @param key * cacheÃû³Æ * @param hashKey * ¼üÖµ * @param obj * Òª»º´æµÄ¶ÔÏó * @return */ void set(String key, String hashKey, Object obj); /** * ½«¶ÔÏ󻺴浽»º´æ³Ø * * @param key * ¶ÔÏókeyÖµ * @param expiredTime * ³¬Ê±Ê±¼ä£¬µ¥Î»Ãë * @param obj * Òª»º´æµÄ¶ÔÏó * @return */ boolean add(String key, int expiredTime, Object obj); /** * ½«¶ÔÏó´Ó»º´æ³ØÉ¾³ý * * @param key * ¶ÔÏókeyÖµ * @return */ void delete(String key); /** * ×·¼Ó»º´æ³ØµÄÖµ * * @param key * ¶ÔÏókeyÖµ * @return */ void append(String key, String value); /** * »ñÈ¡list»º´æÖÐkeyËùÓÐvalueÖµ */ List lstAll(String key); /** * Ïòlist»º´æÖзÅÈëÖµ */ void lstRightPush(String key, Object value); /** * Ïòlist»º´æÖзÅÈëÖµ */ void lstRightPushAll(String key, Collection values); /** * ´ÓÁбí»ñȡָ¶¨·¶Î§ÄÚµÄÊý¾Ý * * @param key * @param start * @param end * @return */ List lstRange(String key, long start, long end); void lstTrim(String key, long start, long end); void lstClear(String key); /** * ¸ù¾Ýkey,indexɾ³ýlistÖеÄvalue */ void lstRemove(String key, Object value); /** * ͨ¹ýkey·µ»ØlistÖеÄÖµ,²¢ÒƳýÖµ */ String lstLeftPop(String key); /** * Ïòhash»º´æÖдæÈë¶ÔÏó * * @param key * @param hashKey * @param value */ void putKeyForHash(Object key, Object hashKey, Object value); /** * ¶Ô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); }