package cn.org.rapid_framework.cache;
import java.util.Map;
import cn.org.rapid_framework.util.holder.CacheHolder;
/**
* A cache interface
*
* expiration的时间单位为秒
* @see CacheHolder.cache
*/
public interface Cache {
/**
* 添加元素只有当它不存在,有异常则抛出
**/
public void add(String key, Object value, int expiration);
/**
* 添加元素只有当它不存在,并忽略掉任何异常
* @return true则成功,false则发生异常
**/
public boolean safeAdd(String key, Object value, int expiration);
/**
* 设置cache值
* */
public void set(String key, Object value, int expiration);
/**
* 设置cache值,并忽略掉任何异常
* @return true则成功,false则发生异常
**/
public boolean safeSet(String key, Object value, int expiration);
/**
* 更换一个元素如果它已经存在,有异常则抛出
**/
public void replace(String key, Object value, int expiration);
/**
* 更换一个元素如果它已经存在,并忽略掉任何异常
* @return true则成功,false则发生异常
**/
public boolean safeReplace(String key, Object value, int expiration);
/**
* 根据key得到一个元素
* @param key
* @return
*/
public Object get(String key);
/**
* 批量查找元素
* @param key
* @return
*/
public Map<String, Object> get(String[] keys);
/**
* 递增元素的值
* @param key
* @param by
* @return
*/
public long incr(String key, int by);
/**
* 递减的元素的值
* @param key
* @param by
* @return
*/
public long decr(String key, int by);
public void clear();
/**
* 从缓存中删除一个元素
* @param key
*/
public void delete(String key);
/**
* 从缓存中删除一个元素,忽略掉任何异常,返回true则删除成功,否则失败
* @param key
*/
public boolean safeDelete(String key);
public void stop();
}