{"repo":"houbb/cache","free":true,"listed":false,"github":"https://github.com/houbb/cache","clone":"git clone https://github.com/houbb/cache.git","description":"The basic cache tool for java.(java 手写实现渐进式 redis 缓存工具，高性能+可拓展性强)","language":"Shell","stars":436,"topics":["cache","redis","memcached","hight-performance","ehcache","guava-cache","caffeine","caffeine-cache"],"license":null,"category":"databases-storage","readme_excerpt":"项目简介 Cache 用于实现一个可拓展的高性能本地缓存。 有人的地方，就有江湖。 有高性能的地方，就有 cache。 创作目的 - 为日常开发提供一套简单易用的缓存框架 - 便于后期多级缓存开发 - 学以致用，开发一个类似于 redis 的本地缓存渐进式缓存框架 特性 - fluent 流式编程体验，纵享丝滑 - 支持 cache 固定大小 - 支持自定义 map 策略 - 支持自定义 expire 过期策略 - 支持自定义 evict 驱除策略(内置 FIFO/LRU 多种驱除策略) - 支持 load 初始化和 persist 持久化（内置 RDB/AOF 模式） - 支持自定义监听器 - 日志整合框架，自适应常见日志 变更日志 变更日志 v1.0.0 对原始代码进行大幅度调整，让整体更加简洁+方便拓展。 快速开始 准备 JDK1.7 及其以上版本 Maven 3.X 及其以上版本 maven 项目依赖 入门测试 默认为先进先出的策略，此时输出 keys，内容如下： 引导类 引导类配置属性 CacheBs 作为缓存的引导类，支持 fluent 写法，编程更加优雅便捷。 上述配置等价于： 这些实现都有默认策略，同时全部支持自定义。 map 数据存储 说明 用于存储缓存的数据，简单起见，目前保留了 Map 接口的常用核心方法。 内置策略 目前内置了几种策略，可以直接通过 CacheMaps 工具类创建。 策略 说明 :------------------ :--------------------------- defaults() 默认策略，目前为 concurrentHashMap hashMap() 基于 HashMap 实现 concurrentHashMap() 基于 ConcurrentHashMap evict 驱逐策略 说明 当 map 的数据超过指定的数量时，对应的驱除策略。 内置策略 目前内置了几种淘汰策略，可以直接通过 CacheEvicts 工具类创建。 策略 说明 :------------------- :--------------------------------- defaults() 默认策略，目前为 FIFO none() 没有任何淘汰策略 fifo() 先进先出 lru() 最基本的朴素 LRU 策略，性能一般 lruDoubleListMap() 基于双向链表+MAP 实现的朴素 LRU，性能优于 lru lru2Q() 基于 LRU 2Q 的改进版 LRU 实现，命中率优于朴素LRU lru2() 基于 LRU-2 的改进版 LRU 实现，命中率优于 lru2Q 过期支持 说明 类似 redis，支持通过 expireAt(key, linuxTime) 指定数据的过期时间。 会有定时调度对数据进行过期处理。 入门例子 cache.expireAt(\"1\", now+40); 指定对应的 key 在 40ms 后过期。 内置策略 目前内置了几种策略，可以直接通过 CacheExpires 工具类创建。 策略 说明 :------------------- :------------------- defaults() 默认策略，目前为 random none() 没有任何过期策略 random() 随机 key，类似 redis sort() 按照过期时间排序处理，需要额外的空间 load 加载器 说明 有时候我们需要在 cache 初始化的时候，添加对应的数据初始化。 后期可以从文件等地方加载数据","default_branch":null,"files":null,"tree":[],"storefront":"/r/houbb","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/houbb/cache/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}