# timeout-cache **Repository Path**: arvin/timeout-cache ## Basic Information - **Project Name**: timeout-cache - **Description**: A memory cache with timeout - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-08-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # timeout-cache 自带超时时间的内存缓存,仅仅是一个简单的内存缓存,并且仅在单应用中使用,不具备分布式的功能。 如果仅仅只是想简单的实现对象缓存一段时间,不需要分布式就可以使用本类 # 使用指南 ## 创建TimeoutCache对象 一般可以使用 TimeoutCache.Builder 来构建一个 TimeoutCache 对象,使用非常简单: TimeoutCache.Builder builder = TimeoutCache.builder(); // 单位是毫秒,表示一个对象多长时间会被移除, 0 表示永不过期, 默认就是 0 builder.defaultTimeout(5000); // 缓存的对象数量限制,默认是 0,表示不受限制, 超过的部分会根据策略剔除对象 builder.limitSize(10); // 容量超出limitSize限制的时候,使用什么策略剔除对象,默认是按照命中率,命中率低的将被移除 builder.pruneStrategy(TimeoutCache.PruneStrategy.FIFO); // 每隔多长时间检测清空一次过期缓存, 单位是毫秒, 默认30秒, 如果timeout不为0,默认设置和defaultTimeout一致 builder.pruneTimeoutInterval(5000); // 创建一个 TimeoutCache 对象 TimeoutCache timeoutCache = builder.build(); ## 使用 TimeoutCache 对象 // 放到缓存 public void put(K key, V value) // 自定义超时时间设置缓存, 但是遇到 缓存淘汰策略 的时候,这个是不管用的,淘汰策略不关心超时时间, timeout 单位是 毫秒 public void put(K key, V value, long timeout); // 获取执行key的缓存对象 public V get(K key); // 手动从缓存中移除一个key public void remove(K key); // 清空所有的缓存 public void clear(); // 清空匹配某个key的缓存 public void clear(String keyPattern); # 联系作者 如果您有什么好的建议请发邮件到: xiajiqiu1990@163.com