001/** 002 * Copyright (c) 2015-2022, Michael Yang 杨福海 (fuhai999@gmail.com). 003 * <p> 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * <p> 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * <p> 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package io.jboot.components.cache; 017 018import com.jfinal.plugin.ehcache.IDataLoader; 019 020import java.util.List; 021 022 023public interface JbootCache extends com.jfinal.plugin.activerecord.cache.ICache { 024 025 026 027 //设置当前 线程 的缓存前缀 028 JbootCache setThreadCacheNamePrefix(String cacheNamePrefix); 029 030 //清除当前 线程 的缓存前缀 031 void clearThreadCacheNamePrefix(); 032 033 //配置哪些缓存名称可以忽略线程前缀的影响 034 boolean addThreadCacheNamePrefixIngore(String cacheName); 035 036 default void addThreadCacheNamePrefixIngores(String... cacheNames) { 037 for (String cacheName : cacheNames) { 038 addThreadCacheNamePrefixIngore(cacheName); 039 } 040 } 041 042 //移除对 addThreadCacheNamePrefixIngore 的配置 043 boolean removeThreadCacheNamePrefixIngore(String cacheName); 044 045 046 JbootCacheConfig getConfig(); 047 048 @Override 049 <T> T get(String cacheName, Object key); 050 051 @Override 052 void put(String cacheName, Object key, Object value); 053 054 void put(String cacheName, Object key, Object value, int liveSeconds); 055 056 057 @Override 058 void remove(String cacheName, Object key); 059 060 @Override 061 void removeAll(String cacheName); 062 063 <T> T get(String cacheName, Object key, IDataLoader dataLoader); 064 065 <T> T get(String cacheName, Object key, IDataLoader dataLoader, int liveSeconds); 066 067 Integer getTtl(String cacheName, Object key); 068 069 void setTtl(String cacheName, Object key, int seconds); 070 071 void refresh(String cacheName, Object key); 072 073 void refresh(String cacheName); 074 075 076 List getNames(); 077 078 List getKeys(String cacheName); 079 080}