All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.holmos.cache.store.CacheStore Maven / Gradle / Ivy

package com.holmos.cache.store;

import java.util.Collection;
import java.util.List;
import java.util.Set;

import com.holmos.cache.element.Element;
import com.holmos.cache.exception.CacheException;
import com.holmos.cache.outpolicy.CacheOutPolicy;
import com.holmos.cache.status.CacheStatus;


/**
 * 存储器的API接口,CacheStore是对物理存储器的一种操作,是对物理存储器的一种抽象
 * 
 * @author: 吴银龙([email protected])
 * @version: 2013-3-19 下午12:05:00 
 */

public interface CacheStore {

	/**
	 * 将元素element 存入存储器
	 * 
	 * @return true 存储器中没有element.key 这个元素 
false 存储器中已经存在element.key这个元素 * 如果element为null,直接返回false * */ public boolean put(Element element) throws CacheException; /** * 将位于Collection集合中的所有元素放入存储器 * * @param elements * */ public void putAll(Collection elements) throws CacheException; /** * 从存储器中获得 索引为key的元素 * * @param key 如果为null,直接返回null * */ public Element get(Object key); /** * 从存储器中批量获得在 索引列表keys的元素集合 * * @param keys * */ public List getAll(Collection keys); /** * 更新存储器中索引为element.key的元素为element * * @return true 更新成功
false 更新失败 * */ public boolean update(Element element); /** * 批量更新 * */ public boolean updateAll(Collection elements); /** * 从存储器中获得 索引为key的元素,并且不更新缓存状态信息 * * @param key 如果为null,直接返回null * */ public Element getQuite(Object key); /** * 获取存储器中所有的索引列表 * */ public Set getAllKeys(); /** * 从存储器中将索引为key的元素删除 * * @return 被删除的元素,如果不存在则为null * */ public Element remove(Object key); /** * 从存储器中删除 所有key列表索引的元素 * */ public void removeAll(Collection keys); /** * 删除缓存中的所有元素 * * */ public void clear() throws CacheException; /** * 清空或者将缓存写入持久层,为缓存关闭或者销毁做好准备 * * */ public void dispose(); /** * 获得当前缓存所占用空间的大小(Byte) * */ public int getCacheSize(); /** * 获取存储器中被缓存的元素数量 * */ public int getElementAmount(); /** * 获取缓存的当前状态的统计信息 * */ public CacheStatus getStatus(); /** * 缓存中是否有索引为key的元素 * */ public boolean containsKey(Object key); /** * 将所有的非持久化的缓存元素全部写入持久化存储器(比如磁盘) * */ public void flush(); /** * 获取此缓存的淘汰策略 * *
  • 如果没有专门为缓存配置淘汰策略的话,返回缓存默认的淘汰策略
  • * */ public CacheOutPolicy getOutPolicy(); /** * 为此缓存设置淘汰策略,从设置好的这一刻起,此缓存的淘汰规则将按照新设置的策略来进行 * */ public void setCacheOutPolicy(CacheOutPolicy outPolicy); /** * 删除过期的缓存元素,并回收缓存资源 * */ public void removeExpireData(); }