package com.sina.util.dnscache.cache; import com.sina.util.dnscache.model.DomainModel; import com.sina.util.dnscache.model.HttpDnsPack; import com.sina.util.dnscache.model.IpModel; import java.util.ArrayList; import java.util.List; /** * * 项目名称: DNSCache <br> * 类名称: IDnsCache <br> * 类描述: 缓存层对外接口 <br> * 创建人: fenglei <br> * 创建时间: 2015-3-26 下午6:12:10 <br> * * 修改人: <br> * 修改时间: <br> * 修改备注: <br> * * @version V1.0 */ public interface IDnsCache { /** * 获取 domain 缓存 * @param sp * @param domain * @return */ public DomainModel getDnsCache(String sp, String domain) ; /** * 插入一条缓存记录 * @param dnsPack * @return */ public DomainModel insertDnsCache(HttpDnsPack dnsPack) ; /** * 批量更新测速后信息,保证事务的原子性。即保持一个域名下的所有ip都同时修改。 * @param ipModels */ public void setSpeedInfo(List<IpModel> ipModels) ; /** * 获取即将过期的domain信息 * @return */ public ArrayList<DomainModel> getExpireDnsCache() ; /** * 内存中 增加缓存信息 * @param url * @param model */ public void addMemoryCache(String url, DomainModel model) ; /** * 清除全部缓存数据 */ public void clear(); /** * 清除内存缓存 */ public void clearMemoryCache() ; /** * 获取缓存中全部的 DomainModel数据 * @return */ public ArrayList<DomainModel> getAllMemoryCache() ; /** * 获取数据库 domain 表,默认不追加ip表的数据 */ public ArrayList<DomainModel> getAllTableDomain(); public ArrayList<DomainModel> getAllTableDomain(boolean appendIpinfo); /** * 获取数据库 ip 表 */ public ArrayList<IpModel> getTableIP() ; }